python - disord.py 中的命令后是/否确认
问题描述
我正在使用 discord.py 库在 python 中制作一个不和谐的机器人。我需要知道,如何在命令后实现是/否确认。例如,考虑一个“禁止”命令,该命令禁止用户访问服务器,并且只能由主持人使用。在写完“!ban @user”之后,我希望机器人回复“Ban @user?(y/n)”,如果那个版主回复的不是“y”,那么禁令就会被取消。我该如何实施?像这样的东西:
@client.command()
@commands.is_owner()
async def ban(ctx, member : discord.Member, *, reason = None):
await ctx.send("Ban @member?(y/n)")
if get_confirmation():
await member.ban(reason = reason)
else:
await ctx.send("Ban Cancelled")
解决方案
你需要使用wait_for
.
以下是修改后的代码:
@client.command()
@commands.is_owner()
async def ban(ctx, member : discord.Member, *, reason = None):
await ctx.send(f"Ban {member.mention}?(y/n)")
msg = await bot.wait_for("message", check=lambda m:m.author==ctx.author and m.channel.id==ctx.channel.id)
if msg.content.lower in ("y", "yes"):
await member.ban(reason = reason)
else:
await ctx.send("Ban Cancelled")
推荐阅读
- javascript - 使用 JavaScript 在控制台中单击任何单选按钮时如何显示特定值?
- python - 大熊猫每分钟的日期直方图
- javascript - 如何根据多个键对数据进行分组和聚合?
- algorithm - 哪个算法函数的增长更快,O(n^2) 或 O(n^2*log(n)),为什么?
- python - 测试脚本的 HTML 报告生成
- android - Android Studio ConstraintLayout RTL 问题
- ios - 无法将图像发送到下一个视图控制器 - 无
- java - 休眠验证排序
- python - 如何在 if else 条件下循环函数
- python - TypeError: __add__() 缺少 1 个必需的位置参数: