我对discord.py的这种格式还很陌生,而且似乎无法使用两个命令来工作。 例如,我有命令; 'hello'和命令'valid'。每当我激活机器人时,它只会响应“有效”或“你好”,而不会两者都响应。 有什么办法可以解决这个问题?
我已经很少尝试了,因为这个问题对我来说是很新的,我也不知道如何解决。
这是我用于命令的代码:
@client.event
async def on_message(message):
if message.content.startswith('!hello'):
messages= ["*tips hat* G'day ", "Yeehaw pardner, ", "Howdy, ", "Gutentag! "]
await client.send_message(message.channel, random.choice(messages) + message.author.mention)
@client.event
async def on_message(message):
if message.content.startswith('!valid'):
rannum = random.randint(0, 100)
await client.send_message(message.channel, (message.author.mention + " is",rannum,"% valid!"))
client.run(TOKEN)
发生这种情况时,不会显示任何错误消息。在这种情况下,我将不胜感激!
答案 0 :(得分:0)
就像@Patrick Haugh提到的一样,您只能有on_message
个事件中的1个。
另外,您可能只需要其中一个事件。
因为on_message
定义了当您收到某人的消息时发生的事件。您可以只检查邮件的内容,然后根据该内容执行操作。
像这样:
@client.event
async def on_message(message):
if message.content.startswith('!valid'):
rannum = random.randint(0, 100)
await client.send_message(message.channel, (message.author.mention + " is",rannum,"% valid!"))
elif message.content.startswith('!hello'):
messages= ["*tips hat* G'day ", "Yeehaw pardner, ", "Howdy, ", "Gutentag! "]
await client.send_message(message.channel, random.choice(messages) + message.author.mention)