Reaction Check with discord.py(使用 discord.py 进行反应检查)
问题描述
我正在研究一个命令,如果你对机器人做出同意反应,它将发送一个 nuke gif.这很好用,但是如果您选择其他选项或超时,我无法让机器人回答不同.我当前的代码如下.感谢您的帮助
I was working on a command which will send a nuke gif if you react bot with an agree reaction. This works fine however I cant make bot answer diffrently if you choose other option or timeout. My current code is bellow. Thanks for your help
async def nuke(ctx):
yas = '✔️'
nay = '❌'
message = await ctx.send("Are you sure that you want to use your nukes?")
await message.add_reaction(yas)
await message.add_reaction(nay)
def check(reaction, user):
return user == ctx.author and str(reaction.emoji) == '✔️'
await bot.wait_for('reaction_add', timeout=60.0, check=check)
embed = discord.Embed(title="Code: 759245 Activated. Destruction of Channel started")
embed.set_image(url="https://i.gifer.com/3Tt5.gif")
await ctx.send(embed=embed)
def check(reaction, user):
return user == ctx.author and str(reaction.emoji) == '❌'
await bot.wait_for('reaction_add', timeout=60.0, check=check)
await ctx.send("Cancelled")```
推荐答案
代码从上到下,这意味着您的代码现在要执行的操作如下:
Code goes top to bottom, meaning that what your code will do now is the following:
- 等待用户做出反应
'✔️'
- 发送gif
3Tt5
- 等待用户反应
'❌'
- 发送已取消"
您将要编写 one
检查以检查是否使用了 任何 个可能的反应,然后以不同的方式处理所有这些反应.
You're gonna want to write one
check that checks if any of the possible reactions was used, and then handle all of them differently.
yas = '✔️'
nay = '❌'
valid_reactions = ['✔️', '❌']
def check(reaction, user):
return user == ctx.author and str(reaction.emoji) in valid_reactions
reaction, user = await bot.wait_for('reaction_add', timeout=60.0, check=check)
if str(reaction.emoji) == yas:
embed = # code to create the embed
return await ctx.send(embed=embed)
# there's only two reactions, so if the above function didn't return, it means the second reaction (nay) was used instead
await ctx.send("Cancelled")
这篇关于使用 discord.py 进行反应检查的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:使用 discord.py 进行反应检查


基础教程推荐
- 用于分类数据的跳跃记号标签 2022-01-01
- 何时使用 os.name、sys.platform 或 platform.system? 2022-01-01
- Dask.array.套用_沿_轴:由于额外的元素([1]),使用dask.array的每一行作为另一个函数的输入失败 2022-01-01
- 线程时出现 msgbox 错误,GUI 块 2022-01-01
- 使用PyInstaller后在Windows中打开可执行文件时出错 2022-01-01
- 筛选NumPy数组 2022-01-01
- 如何让 python 脚本监听来自另一个脚本的输入 2022-01-01
- Python kivy 入口点 inflateRest2 无法定位 libpng16-16.dll 2022-01-01
- 如何在海运重新绘制中自定义标题和y标签 2022-01-01
- 在 Python 中,如果我在一个“with"中返回.块,文件还会关闭吗? 2022-01-01