为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

FFIVE 2021-10-19 09:51:20
我最近一直在试验不和谐机器人和不和谐 API,但我遇到了机器人事件的问题。当使用 discord.py 模块创建两个事件时,只有一个可以工作,而另一个不工作,但两者的格式完全相同。为什么会发生这种情况,我该如何解决这个问题?这是我的代码:@bot.eventasync 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.eventasync 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)但该打印也不会打印出来。这两个事件的格式相同,那么为什么一个有效而另一个无效呢?
查看完整描述

2 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

这些wait_for_message调用似乎是多余的:根据文档,message传递给回调的参数是您想要的消息。如果您要删除对的调用wait_for_message并直接使用传入的消息,它可能会按预期工作。


查看完整回答
反对 回复 2021-10-19
  • 2 回答
  • 0 关注
  • 167 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信