【发布时间】:2022-01-24 06:05:49
【问题描述】:
我一直在开发一个不和谐的 py 机器人,并一直在尝试实现创建投票并让每个人对投票只做出一次反应的能力。我已经成功创建了投票(包括开始投票的机器人反应)。但是,我正在努力将玩家的反应限制为仅列出的反应和每次投票中的一个反应。
这是目前控制对消息的反应的代码
async def on_reaction_add(reaction, user):
channel = discord.utils.get(user.guild.channels, name=pollchannel)
print(reaction.message.id)
if user.name != botname and reaction.message.channel == channel:
cache_msg = discord.utils.get(client.cached_messages, id=reaction.message.id)
print(cache_msg.reactions)
print(reaction.emoji)
if reaction.emoji not in cache_msg.reactions:
await reaction.remove(user)
elif len(reaction.message.reactions) > 1:
await reaction.remove(user)
我一直在测试和尝试不同的东西,但无法让它按预期工作。目前它总是删除反应消息。似乎检查反应表情符号是否在缓存中(即使当我将它们打印到控制台时我可以看到它在缓存中)它没有找到它。 elif 语句几乎可以工作,但我希望每个人都能够添加一个反应,这似乎只是将消息限制为仅保留机器人添加的反应。
感谢任何帮助!
【问题讨论】:
标签: python discord discord.py bots