我正在编写一个discord机器人,每当您对某条消息作出反应时,该机器人便会将您的名字添加到列表中。由于这些消息可能会长期处于混乱状态,而我的混乱机器人会不时重启,因此我决定使用discord.on_raw_reaction_add(payload)
而不是discord.on_reaction_add(reaction, user)
。这样可以防止消息不在缓存中时功能无法激活。
我的问题是,使用与discord.on_reaction_add(reaction, user)
相同的代码,discord.on_raw_reaction_add(payload)
未激活。
这都是我的代码的简化示例。如果您使用令牌运行它并对(新)消息做出反应,您将看到第二个示例不显示“已添加反应”。
工作版本:(带有on_reaction_add)
import discord
client = discord.Client()
@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
@client.event
async def on_reaction_add(reaction, user):
print('reaction added')
client.run('TOKEN')
残破的版本:(带有on_raw_reaction_add) 导入不和谐
client = discord.Client()
@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
@client.event
async def on_raw_reaction_add(payload):
print('reaction added')
client.run('TOKEN')
我尝试对旧消息和新消息添加反应。他们都没有给出预期的“增加反应”响应。