如何启用多个命令

时间:2019-08-09 23:34:19

标签: discord discord.py

我对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)

发生这种情况时,不会显示任何错误消息。在这种情况下,我将不胜感激!

1 个答案:

答案 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)