首页 > 解决方案 > 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
    

标签: pythondiscord.py

解决方案


好的,所以你需要使用 discord.py 的while Trueclient.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

推荐阅读