首页 > 解决方案 > 如何在 discord.py 中停止执行命令

问题描述

如果用户余额<他下注的钱,我试图停止执行命令。一切正常,但唯一的问题是如果用户输入赌注 > 他的余额,我无法停止命令的执行。

我试图停止执行 await message.channel.send(embed = error_bet_bal)

这是我的代码:

await message.channel.send(embed=discord.Embed(title='Please Enter The Amount to Bet', color=0xFFFF00))
        
        
        
        msg = await client.wait_for('message', check=check)
        bet_str = msg.content
        bet = int(bet_str)
        if bet>users_balance:
            await message.channel.send(embed = error_bet_bal) #displays that the users bal is less than what he is trying to bet. I am trying to stop it here but after displaying the error message it continues to the while loop.
       
while bet<1:
            if bet >= 1:
                break
            else:
                await message.channel.send(embed = error_bet)
                await message.channel.send(embed=discord.Embed(title='Please Enter The Amount to Bet', color=0xFFFF00))
                

                msg = await client.wait_for('message', check=check)
                bet_str = msg.content
                bet = int(bet_str)

非常感谢 :)

标签: pythondiscord.pydiscord.py-rewrite

解决方案


添加return结束函数

下面是修改后的代码

await message.channel.send(embed=discord.Embed(title='Please Enter The Amount to Bet', color=0xFFFF00))
        
        
        
        msg = await client.wait_for('message', check=check)
        bet_str = msg.content
        bet = int(bet_str)
        if bet > users_balance:
            await message.channel.send(embed = error_bet_bal)
            return
     
       
while bet<1:
            if bet >= 1:
                break
            else:
                await message.channel.send(embed = error_bet)
                await message.channel.send(embed=discord.Embed(title='Please Enter The Amount to Bet', color=0xFFFF00))
                

                msg = await client.wait_for('message', check=check)
                bet_str = msg.content
                bet = int(bet_str)

推荐阅读