Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.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 当用户键入时,如何使bot跟随键入,当用户停止时,bot也停止在特定频道中键入?_Python_Python 3.x_Discord.py_Discord.py Rewrite - Fatal编程技术网

Python 当用户键入时,如何使bot跟随键入,当用户停止时,bot也停止在特定频道中键入?

Python 当用户键入时,如何使bot跟随键入,当用户停止时,bot也停止在特定频道中键入?,python,python-3.x,discord.py,discord.py-rewrite,Python,Python 3.x,Discord.py,Discord.py Rewrite,当用户正在键入时,如何使bot也在某个通道中启动键入事件,并在正在键入的用户停止时停止 无法使用ctx.trigger_typing/ctx.typing,因为我们需要跟踪用户是否正在键入 那么如何做到这一点呢?编辑: 启用意图。在Discord developer门户中键入并打开意图可以访问on_typing事件,您可以从代码中启用所有意图,如: intents = discord.Intents.all() client = discord.Client(intents=intents)

当用户正在键入时,如何使bot也在某个通道中启动键入事件,并在正在键入的用户停止时停止

无法使用ctx.trigger_typing/ctx.typing,因为我们需要跟踪用户是否正在键入

那么如何做到这一点呢?

编辑:

启用
意图。在Discord developer门户中键入
并打开意图可以访问
on_typing
事件,您可以从代码中启用所有意图,如:

intents = discord.Intents.all()
client = discord.Client(intents=intents)
只需在键入时使用
事件即可调用键入事件

@client.event
async def on_typing(channel, user, when):
    print(f"{user} is typing message in {channel} {when}")

如果你想让你的机器人有一个打字状态,你可以使用
ctx.typing():
然后是它将要发送的内容

下面是一个关于消息的
事件示例

@client.event
异步def on_消息(消息):
与message.channel.typing()异步:
wait message.channel.send('typingstatus invoked')
等待客户端处理命令(消息)
命令使用情况下,还可以添加睡眠事件来控制键入时间

@client.command()
异步def类型(ctx):
与ctx.typing()异步:
等待异步睡眠(2)
等待ctx.send(“键入…”)

这有帮助吗?事件如何?抱歉,我需要更新,我找到了一些关于键入事件的信息,谢谢@ŁukaszKwieciński抱歉,我只是不知道Discord的API中存在这种情况,希望这有助于了解如何跟踪用户以查看他/她是否正在键入?就像当用户正在键入时,bot在某个通道中也应该具有键入状态,当用户停止时,bot也应该停止,如何做到这一点