如何制作 Discord.py ping 命令
How to make a Discord.py ping cmd
我尝试了很多其他人的解决方案,但都没有用。
那么,如何获得在 MS 中显示 ping 的 ping 命令?
这是我的代码,我没有收到任何错误,只是它没有回复我的 CMD。
import os
from keep_alive import keep_alive
from discord.ext import commands
import time
import random
bot = commands.Bot(
command_prefix="!", # Change to desired prefix
case_insensitive=True # Commands aren't case-sensitive
)
bot.author_id = 777526936753799189
@bot.event
async def on_ready():
print("I'm in")
print(bot.user)
@bot.event
async def on_member_join(member):
await member.create_dm()
await member.dm_channel.send(
f'Hi {member.name}, welcome to my Discord server!'
)
@bot.event
async def on_message(message):
if '!test' in message.content.lower():
await message.channel.send('heyo')
@bot.command()
async def ping(ctx):
await ctx.channel.send(f"{client.latency}")
@bot.command()
async def test(ctx, arg):
await ctx.send(arg)
extensions = [
'cogs.cog_example'
]
if __name__ == '__main__':
for extension in extensions:
bot.load_extension(extension)
keep_alive()
token = os.environ.get("DISCORD_BOT_SECRET")
bot.run(token)
为了简化事情,这里是我用来获取 ping 响应的命令。
@bot.command()
async def ping(ctx):
await ctx.channel.send(f"{client.latency}")
简单来说,您已将您的机器人定义为 bot。因此,您应该将 client.latency
替换为 bot.latency
@bot.command()
async def ping(ctx):
await ctx.send(f"{bot.latency}")
但如果您更喜欢不同的方式,您可以这样做:
@bot.command()
async def ping(ctx):
start = time.perf_counter()
msg = await ctx.send("Ping..")
end = time.perf_counter()
duration = (end - start) * 1000
await msg.edit("Pong! {:.f}ms".format(duration))
此外,由于您的 on_message
事件,您的其他命令也有可能无法正常工作。如果不是,则需要处理命令。
@bot.event
async def on_message(message):
if '!test' in message.content.lower():
await message.channel.send('heyo')
await bot.process_commands(message)
我尝试了很多其他人的解决方案,但都没有用。 那么,如何获得在 MS 中显示 ping 的 ping 命令?
这是我的代码,我没有收到任何错误,只是它没有回复我的 CMD。
import os
from keep_alive import keep_alive
from discord.ext import commands
import time
import random
bot = commands.Bot(
command_prefix="!", # Change to desired prefix
case_insensitive=True # Commands aren't case-sensitive
)
bot.author_id = 777526936753799189
@bot.event
async def on_ready():
print("I'm in")
print(bot.user)
@bot.event
async def on_member_join(member):
await member.create_dm()
await member.dm_channel.send(
f'Hi {member.name}, welcome to my Discord server!'
)
@bot.event
async def on_message(message):
if '!test' in message.content.lower():
await message.channel.send('heyo')
@bot.command()
async def ping(ctx):
await ctx.channel.send(f"{client.latency}")
@bot.command()
async def test(ctx, arg):
await ctx.send(arg)
extensions = [
'cogs.cog_example'
]
if __name__ == '__main__':
for extension in extensions:
bot.load_extension(extension)
keep_alive()
token = os.environ.get("DISCORD_BOT_SECRET")
bot.run(token)
为了简化事情,这里是我用来获取 ping 响应的命令。
@bot.command()
async def ping(ctx):
await ctx.channel.send(f"{client.latency}")
简单来说,您已将您的机器人定义为 bot。因此,您应该将 client.latency
替换为 bot.latency
@bot.command()
async def ping(ctx):
await ctx.send(f"{bot.latency}")
但如果您更喜欢不同的方式,您可以这样做:
@bot.command()
async def ping(ctx):
start = time.perf_counter()
msg = await ctx.send("Ping..")
end = time.perf_counter()
duration = (end - start) * 1000
await msg.edit("Pong! {:.f}ms".format(duration))
此外,由于您的 on_message
事件,您的其他命令也有可能无法正常工作。如果不是,则需要处理命令。
@bot.event
async def on_message(message):
if '!test' in message.content.lower():
await message.channel.send('heyo')
await bot.process_commands(message)