【问题标题】:Discord.py on_typingDiscord.py on_typing
【发布时间】:2020-12-01 00:17:55
【问题描述】:

我在使用 discord.py 时遇到了一些问题。我想使用 on_typing 事件进行日志记录或其他操作,但它不起作用。我试过这样做

intents = discord.Intents.default()
intents.typing = True
client = discord.Client(intents=intents)

这里是所有代码。 on_ready 和 on_message 工作正常,但 on_typing。如何让它发挥作用?

@client.event
async def on_ready():
    logger.info("But successfully runned!")

@client.event
async def on_typing(channel, user, when):
    logger.info("{} is typing message in {} : {}".format(user.name, channel, when))

@client.event
async def on_message(message):
    logger.info("{} has just sent {}".format(message.author, message.content))

【问题讨论】:

    标签: python python-3.x discord.py


    【解决方案1】:

    我相信这是你的错误:

    intents = discord.Intents.default()
    intents.typing = True
    client = discord.Client(intents=intents)
    

    不要写intents.typing = True这一行,只需在开头启用所有意图。为此,您将删除intents.typing = True 行,然后将intents = discord.Intents.default() 替换为intents = discord.Intents.all(),然后就是这样(确保您已在Discord Dev Portal 中启用意图)!根据您的机器人 ping,它不会立即检测到输入,而是在几毫秒后检测到。所以,结束代码看起来像这样:

    intents = discord.Intents.all()
    client = discord.Client(intents=intents)
    

    然后您调用on_typing 事件是正确的!希望这有帮助!如果您对我的代码有任何后续问题或意外错误,请随时跟进!

    【讨论】:

      【解决方案2】:

      您是否尝试过将on_typing 事件和on_message 事件替换为@client.listen,例如:

      @client.event
      async def on_ready():
          logger.info("But successfully runned!")
      
      @client.listen
      async def on_typing(channel, user, when):
          logger.info("{} is typing message in {} : {}".format(user.name, channel, when))
      
      @client.listen
      async def on_message(message):
          logger.info("{} has just sent {}".format(message.author, message.content))
      

      我在制作加入消息时遇到了这个问题,这似乎可以解决它。

      【讨论】:

      • @client.listen() 应该用括号写入,并且可以选择包含它正在侦听的事件的字符串,例如:@client.listen('on_message'),这将允许您将实际函数命名为其他名称,这样您就可以拥有多个可区分的事件侦听器
      猜你喜欢
      • 1970-01-01
      • 2021-08-19
      • 2021-01-07
      • 2021-03-24
      • 2020-09-18
      • 2021-02-04
      • 2020-09-30
      • 2019-02-07
      • 2020-05-06
      相关资源
      最近更新 更多