【发布时间】:2021-07-16 01:41:42
【问题描述】:
我目前正在尝试创建一个 Discord Bot,将人们随机分成 2 个团队。 现在,我能够发送带有反应的消息,然后返回对机器人消息做出反应的用户列表。但我面临以下问题:
- 列表包括机器人;
- 该列表仅包括机器人和第一个对消息做出反应的人(我想在命中 10 个不包括机器人的玩家后立即随机化)
- 我需要将列表分成两个团队
if str(reaction.emoji) == '✅': ## right now this is just selecting the game
def check(reaction, user): ## this check is here but I was unable to properly use it without breaking the code, or even defining the limit of 10 reactions
return user != bot.user and (str(reaction.emoji) == '????')
msg_players1 = await ctx.send('Summoners, react below: ')
await msg_players1.add_reaction('????')
msg_players1 = await ctx.channel.fetch_message(msg_players1.id)
reactions = msg_players1.reactions
users = set()
for reactions in user, reaction:
async for user in reaction.users():
users.add(user)
await ctx.send(f"time 1: {', '.join(user.name for user in users)}")
我对编码非常陌生,对 Discord 机器人更是如此,非常感谢任何帮助! 谢谢!
编辑:我刚刚测试过,它没有返回对 ???? 做出反应的用户名表情符号,它返回调用命令的用户名
【问题讨论】:
-
您可以尝试使用
while True循环并等待您的反应。为了排除机器人反应,我们可以检查反应是否来自用户,也可以使用一种循环。 (类似于:while user == self.bot.user)
标签: python discord discord.py