Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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 当特定用户键入时,如何使我的机器人发送消息?_Python_Python 3.x_Events_Discord_Discord.py - Fatal编程技术网

Python 当特定用户键入时,如何使我的机器人发送消息?

Python 当特定用户键入时,如何使我的机器人发送消息?,python,python-3.x,events,discord,discord.py,Python,Python 3.x,Events,Discord,Discord.py,我想让我的机器人在特定用户开始键入(即我)时做出响应 如果我使用==进行比较,如果我使用,我将不会得到任何响应=机器人按预期响应所有人 如果我以如下方式运行If语句: if me.typing: await channel.send('*cough* loser...') bot只会再次响应所有人,会给你什么?你的代码带来一些错误: 只接受一个参数,该参数是单个id,必须是整数。你必须这样使用它→ 用户=客户端。获取用户(id) 读取允许您使用此xxxx的文档时,正在键入并返回一个

我想让我的机器人在特定用户开始键入(即我)时做出响应

如果我使用
==
进行比较,如果我使用
,我将不会得到任何响应=机器人按预期响应所有人

如果我以如下方式运行
If
语句:

if me.typing:
    await channel.send('*cough* loser...') 

bot只会再次响应所有人,会给你什么?

你的代码带来一些错误:

  • 只接受一个参数,该参数是单个
    id
    ,必须是整数。你必须这样使用它→ <代码>用户=客户端。获取用户(id)
  • 读取允许您使用此
    xxxx的文档时,正在键入
    并返回一个上下文管理器,而不是一个整数,这就是为什么没有触发第一个
    if
    语句的原因
  • 如上所述,
    me!=始终触发member.typing
    ,因为它们永远不会是相同的类型和值
  • 您实际上不需要获取用户对象,只需使用
    user.id
    并将其与所需的id进行比较即可。
    ID必须是整数,而不是字符串,否则,
    if
    语句将永远不会触发

    @client.event
    键入时的异步定义(通道、用户、时间):
    如果user.id==您的_id:#将您的_id替换为您想要的id(必须是int)
    等待频道。发送(“*咳嗽*失败者…”)
    

    参考:discord.py文档→

    您应该与
    user.id
    进行比较
    如果user.id==您的_id_为_整数:#执行x
    。非常感谢!太棒了,非常感谢你的介绍,哈哈,我对这个很陌生,api参考在某种程度上是有意义的,但仍然超出了我的理解水平,谢谢!
    if me.typing:
        await channel.send('*cough* loser...')