我刚刚开始制作一个Discord机器人,并尝试使用事件使它响应ping,但是我读到正确的方法是使用命令,所以我也尝试过,但是我的机器人不会响应prefix +'ping在频道上。终端上没有任何错误或任何错误,但只是在应有的情况下没有响应。我非常感谢您的帮助,因为我真的不知道我做错了什么,我附上了我开始使用的代码,它同时具有ping事件的有效方法和命令无效的两种方法,我不知道为什么另外,在代码中,我在运行代码时附加了我的机器人在通道上的响应。
import discord
from discord.ext import commands
token = 'NzM4DNc3MDI5OTA4ODA3NzMy.XyMeVA.8oopIfcva4IFuhJwO7pkFXy9j7g'
client = commands.Bot(command_prefix='.')
@client.event
async def on_message(message):
channel = message.channel
if message.content.startswith('..ping'):
await channel.send('pong..')
@client.command(pass_context=True)
async def ping(ctx):
await ctx.send('pong.')
client.run(token)
Nandini今天11:00
.ping
.. ping
balalala BOT 今天在11:01
pong ..
答案 0 :(得分:2)
定义事件时,将覆盖内置的默认事件。on_message()的默认事件中包含bot.process_commands(message),它使您可以调用可能会猜到的命令。
您明白我在这里的意思了,您需要添加一个
等待bot.process_commands(消息)
添加on_message事件的结尾。
另外,请更改您的令牌,任何人都可以使用它登录到您的机器人。
如果您需要更多帮助,我还建议加入discord.py discord支持服务器,因为它们通常非常活跃并且可以立即回答您的问题。邀请函如下:https://discord.gg/r3sSKJJ