python - 如何在 Python Discord Bot(重写)中获取用户输入?
问题描述
我有一个我在 Python 3.8.5 上制作的不和谐机器人。我正在通过正确的语法和命令打印此菜单。现在我希望用户根据他想要选择的选项键入数字 1 或 2。这是我的代码:
async def menu(self, ctx):
await ctx.message.delete()
embed = discord.Embed(
title = "Heartbeat Menu",
description = "Select and enter a number.\n 1. Check Status of Heartbeat\n 2. Hearbeat Check"
)
sent = await ctx.send(embed=embed)
它工作正常。当用户输入 1 或 2 时,应该编写什么代码,机器人会识别并打印其他内容。
解决方案
@client.command()
async def menu(ctx):
await ctx.message.delete()
embed = discord.Embed(
title = "Heartbeat Menu",
description = "Select and enter a number.\n 1. Check Status of Heartbeat\n 2. Hearbeat Check"
)
sent = await ctx.send(embed=embed)
def check(msg):
return msg.author == ctx.author and msg.channel == ctx.channel and msg.content in ["1", "2"]
msg = await client.wait_for("message", check=check)
if msg.content == "1":
#code for number 1
else:
#code for number 2
我使用client.wait_for方法等待用户输入,check()
函数内部的menu
函数会检查权限user , channel , message is 1/2
,如果满足,就会执行#code for number 1
or !#code for number 2
如果您仍然无法理解,我建议您阅读文档!