Discord.py bot 事件的格式完全相同,但一个运行,一个不运行

我最近一直在试验不和谐机器人和不和谐 API,但我遇到了机器人事件的问题。当使用 discord.py 模块创建两个事件时,只有一个可以工作,而另一个不工作,但两者的格式完全相同。为什么会发生这种情况,我该如何解决这个问题?这是我的代码:


@bot.event

async def on_message(message):

    message = await bot.wait_for_message(author=message.author)

    if message.content.startswith('!genlifetime password'):

        global amount

        amount = message.content[len('!genlifetime password'):].strip()

        num = int(amount)

        chars = ['A','B','C','D','E','F','G','H','I','J','K','L','M','N','O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '1', '2', '3', '4', '5', '6', '7', '8', '9', '0']

        for x in range(0, num):

            authkey1 = ''

            authkey2 = ''

            authkey3 = ''

            authkey4 = ''

            for i in range(0,4):

                authkey1 = authkey1 + chars[random.randrange(0,35)]

            for i in range(0,4):

                authkey2 = authkey2 + chars[random.randrange(0,35)]

            for i in range(0,4):

                authkey3 = authkey3 + chars[random.randrange(0,35)]

            for i in range(0,4):

                authkey4 = authkey4 + chars[random.randrange(0,35)]

            authkey = authkey1 + '-' + authkey2 + '-' + authkey3 + '-' + authkey4

            print(authkey)

            with open(keyfile, 'a') as f:

                f.write(authkey + ' LIFETIME \n')


@bot.event

async def authorize(message):

    message = await bot.wait_for_message(author=message.author)

    if message.content.startswith('!activate'):

        global key

        key = message.content[len('!activate'):].strip()

        print(key)        


bot.run("NTM3Mzk1NDQzNzAxNjQ1MzEz.DykoDA.x5PrEwxZ0hlY2TeCtKVlg1QsbfQ")

当我运行我的机器人并输入!genlifetime password 10. 但是,该authorize事件根本不起作用。如果我输入 !authorize key 在 shell 中什么也不会发生。根本没有打印密钥。我什至尝试在之前打印,message = await bot.wait_for_message(author=message.author)但该打印也不会打印出来。这两个事件的格式相同,那么为什么一个有效而另一个无效呢?


FFIVE
浏览 169回答 2
2回答

肥皂起泡泡

这些wait_for_message调用似乎是多余的:根据文档,message传递给回调的参数是您想要的消息。如果您要删除对的调用wait_for_message并直接使用传入的消息,它可能会按预期工作。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python