Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 命令中的Discord.py命令?_Python_Discord_Discord.py - Fatal编程技术网

Python 命令中的Discord.py命令?

Python 命令中的Discord.py命令?,python,discord,discord.py,Python,Discord,Discord.py,我一直在考虑用我的discord机器人制作21点游戏,但我遇到了一个障碍 很明显,我有一个用.blackjack命令调用的游戏,它可以很好地生成随机值并发送消息。然而,我不知道如何使玩家能够在发牌信息发送后说hit或stand,例如 @client.command() async def blackjack(ctx): # (insert all random number gens, etc. here) await ctx.send(f"{dface1}{

我一直在考虑用我的discord机器人制作21点游戏,但我遇到了一个障碍

很明显,我有一个用
.blackjack
命令调用的游戏,它可以很好地生成随机值并发送消息。然而,我不知道如何使玩家能够在发牌信息发送后说hit或stand,例如

@client.command()
async def blackjack(ctx):
    # (insert all random number gens, etc. here)
    
    await ctx.send(f"{dface1}{dsuit1} ({dvalue1}), {dface2}{dsuit2} ({dvalue2})")
    await ctx.send(f"(Dealer Total: {dtotal})")
    
    await ctx.send(f"{pface1}{psuit1} ({pvalue1}), {pface2}{psuit2} ({pvalue2})")
    await ctx.send(f"(Total: {ptotal})")

现在怎么办?我该如何运行代码的下一部分,即玩家是否击打或站立、庄家击打和站立等。

discord.py
内置了对子命令的支持,下面是一个示例:

@commands.group(调用_而不调用_子命令=True)
异步定义您的命令名称(ctx):
#如果没有调用子命令,请执行某些操作
@您的命令名称。命令()
异步def子命令_名称(ctx,*args):
#做点什么
#援引
#{prefix}您的命令\u name子命令\u在这里命名一些参数
或者你可以简单地等待消息

@client.command()
异步def二十一点(ctx):
# ...
def检查(消息):
“”“检查消息作者是否与调用
命令,并且如果用户选择了有效选项“”
return message.author==ctx.author和message.content.lower()位于['stand','hit']
等待ctx.send('您想打还是站?')
消息=等待客户端。等待('message',check=check)
等待ctx.send(f“您选择了`{message.content}`”)
#援引
#{prefix}21点
#你想打还是站着?
#站立
#你选择了站着`

我真的不知道如何玩21点,所以我恐怕不能给你一个完整的答案。然而,我要说的是,你如何才能实现你想要的。在我看来,有两种方法可以做到这一点

方法1 等待用户对机器人的消息作出反应

为此,您必须使用:

反应,用户=等待客户端。等待('reaction\u add',timeout=60.0,check=check)

例如,假设您正在等待检查这一行,您的意思是子命令?