需要帮助修复石头剪刀布命令中的某个错误 | Discord.py重写
Need help to fix a certain bug in Rock Paper Scissors Command | Discord.py rewrite
所以我做了一个石头剪刀布命令,它几乎完美地工作。但是,有一个错误,我非常需要修复它。但不幸的是,我无法从任何地方得到任何帮助。下面是代码的工作原理。
当您键入“>rps”时,它会发送一个嵌入并要求对任何表情符号(石头、布或剪刀)做出反应。机器人已经选择了它的项目(在随机模块的帮助下)。当我对任何表情符号(石头、布和剪刀表情符号)做出反应时,它表明我赢了、输了或打平了比赛。到这里为止一切都很好。但是,当您手动对同一消息做出反应时(使用 3 个表情符号中的任何一个),消息会再次更改为获胜、失败或平局嵌入。我希望在成员完成一场比赛后停止发生这种情况。这是我的代码。
my code
很抱歉没有提供原始代码,因为代码示例有点错误。如果有人帮助我,我真的很感激。谢谢:)
不要使用事件 on_reaction_add
,而是使用 wait_for,这是一个例子。
def check(reaction, user):
return user == message.author and str(reaction.emoji) in ["put", "emojis", "here"]
try:
reaction, user = await client.wait_for('reaction_add', timeout=60.0, check=check)
except asyncio.TimeoutError:
await channel.send("Timed out!")
else:
if str(reaction.emoji) == rock:
...
elif str(reaction.emoji) == paper:
...
else: # Scissors
...
我也强烈建议只嵌入一个并根据您的需要对其进行编辑,您可以将嵌入定义为
em = discord.Embed(description=f"The bot chose {x}")
# Later on in the code
if bot_won:
em.title = "You lost!"
em.color = ...
elif user_won:
em.title = "You won!"
em.color = ...
else: # Draw
em.title = "Draw!"
em.color = ...
所以我做了一个石头剪刀布命令,它几乎完美地工作。但是,有一个错误,我非常需要修复它。但不幸的是,我无法从任何地方得到任何帮助。下面是代码的工作原理。 当您键入“>rps”时,它会发送一个嵌入并要求对任何表情符号(石头、布或剪刀)做出反应。机器人已经选择了它的项目(在随机模块的帮助下)。当我对任何表情符号(石头、布和剪刀表情符号)做出反应时,它表明我赢了、输了或打平了比赛。到这里为止一切都很好。但是,当您手动对同一消息做出反应时(使用 3 个表情符号中的任何一个),消息会再次更改为获胜、失败或平局嵌入。我希望在成员完成一场比赛后停止发生这种情况。这是我的代码。
my code
很抱歉没有提供原始代码,因为代码示例有点错误。如果有人帮助我,我真的很感激。谢谢:)
不要使用事件 on_reaction_add
,而是使用 wait_for,这是一个例子。
def check(reaction, user):
return user == message.author and str(reaction.emoji) in ["put", "emojis", "here"]
try:
reaction, user = await client.wait_for('reaction_add', timeout=60.0, check=check)
except asyncio.TimeoutError:
await channel.send("Timed out!")
else:
if str(reaction.emoji) == rock:
...
elif str(reaction.emoji) == paper:
...
else: # Scissors
...
我也强烈建议只嵌入一个并根据您的需要对其进行编辑,您可以将嵌入定义为
em = discord.Embed(description=f"The bot chose {x}")
# Later on in the code
if bot_won:
em.title = "You lost!"
em.color = ...
elif user_won:
em.title = "You won!"
em.color = ...
else: # Draw
em.title = "Draw!"
em.color = ...