python - Discord.py:在用户使用命令后,我如何从用户那里获取输入?
问题描述
我在我的机器人中制作了一个更高更低的游戏,但我不知道在用户输入命令开始游戏后如何获取用户的输入。我该怎么做?
@client.command(aliases=['highlow'])
async def higherlower(ctx):
random_number = randint(1, 25)
guess = 0
tries = 5
# code here that detects user input
while guess != random_number:
if tries == 0:
await ctx.send('You're out of tries! Try again.)
break
if guess != random_number:
tries = tries -1
await ctx.send('Incorrect!' + tries + ' tries left.')
if guess == random_number:
await ctx.send('You got it! The number was ' + random_number)
break
解决方案
好的,所以你需要使用 discord.py 的while True
和client.wait_for
部分:
@client.command(aliases=['highlow'])
async def higherlower(ctx):
random_number = randint(1, 25)
tries = 5
while True:
guess_message = await client.wait_for('message')
if guess_message.author == ctx.message.author:
guess = int(guess_message.content)
if tries == 0:
await ctx.send('You're out of tries! Try again.)
break
if guess != random_number:
tries = tries -1
await ctx.send('Incorrect!' + tries + ' tries left.')
if guess == random_number:
await ctx.send('You got it! The number was ' + random_number)
break
推荐阅读
- hive - 在 HIVE 中插入当前时间戳作为多行插入的一部分
- merge - SSIS - 加入来自不同服务器的两个不同表
- wordpress - Laravel 使用 wordpress 博客从公共文件夹中安装
- batch-file - 在批处理文件中拖放-扩展此代码问题的变量
- c# - Roslyn 脚本错误:字符串代码 = @"System.Threading.Thread.Sleep(300000);";
- javafx - 尝试在 JavaFX 中查看数千个缩略图,速度太慢
- python - 如何在另一个命令结束之前执行命令?
- r - R中的openxlsx包删除数据分组的问题
- c++ - 当派生类中有非常量覆盖时,为什么尝试访问基类的 const 函数编译失败?
- jquery - 无法添加或更新 NuGet 包,收到 NuGet V2 提要错误