当前位置: 首页 > 知识库问答 >
问题:

为什么我的discord.py机器人对on_message事件没有反应?

澹台衡
2023-03-14

我正在为Minecraft服务器的discord制作一个机器人。我在下面有一个on_会员加入事件和on_消息事件。on_member_join工作得很好,但是当我在discord服务器中发送消息时,on_message事件内部不会发生任何事情。这是我的代码,如果有人有可能的解决方案,我会非常感激。

import discord
import os
import datetime

intents = discord.Intents(members = True, guilds = True)
client = discord.Client(intents = intents)
yesterday = datetime.datetime.now() - datetime.timedelta(days=1)
joinList = []

@client.event
async def on_ready():
  global verify
  print('We have logged in as {0.user}'.format(client))

@client.event
async def on_member_join(member):
  await client.get_channel(809271484475506698).send('Welcome, <@' + str(member.id) + '>! Please enter your main Minecraft username into this channel.')
  joinList.append(str(member.name))
  print(joinList)

@client.event
async def on_message(message):
  print('test')

  print(joinList)
  messages = await client.get_channel(809256065387462696).history(after = yesterday).flatten()

  if str(message.author.name) in joinList:
    for i in range(len(messages)):
      if message.content in str(messages[i]):
        print('success!')
        return

client.run(os.getenv('TOKEN'))

共有1个答案

卫博学
2023-03-14

将其添加到程序的开头,以及其他导入:from discord。utils导入获取。您需要包括这个,因为您使用的是客户机。get_频道,这要求您首先导入get

 类似资料:
  • 我目前正在做一个JavaFX突围游戏,并建立了一个移动系统,该系统使用公共的userKeyInteraction方法,在我按下左右箭头键时设置蝙蝠对象的速度。这个方法看起来工作得很好,但是我也有一个keyReleased方法,当用户不再按任何一个箭头时,这个方法不仅对bat没有影响(当键被释放时它不会停止),而且根本检测不到keyReleased事件。 正如您在上面看到的,我已经使用debug.t

  • 我试图从aws上订阅的主题接收消息,我可以发布到该主题,但无法在paho mqtt应用程序上接收到消息。在AWS物联网客户端中,它工作得非常完美。 我的代码 我的物联网地址:{“版本”:“2012-10-17”,“声明”:[{“效果”:“允许”,“行动”:“物联网”,“资源”:“arn:aws:iot:us-west-2:account_-id:client/myNode”},{“效果”:“允许”

  • 我正在制作一个工作正常的不和谐机器人,但是我想开始使用齿轮,因为我认为这是编写代码的更好的方式,但是现在我的on_message不再工作了,它也没有显示任何错误信息,我在整个互联网和所有的解释对我都不起作用,所以我决定在这里问。这是我的代码:

  • 我有错误,我检查了这个-discord bot-userinfo命令“IndentationError:unexpected indent”,但我不知道如何修复我的代码 此行出错- 这是我所有的功能

  • 在JavaScript中,我按住两个键,并且被完美触发。当我释放其中一个键时,被触发。到目前为止一切都很好。但是我仍然按住一个键,那么为什么没有被触发呢?我需要在我的游戏中发生这种情况。我做错了什么吗?这是预期的反应吗?有什么解决办法吗?

  • 我正在学习如何使用python创建一个discord bot,但我在使用这个命令时遇到了问题。我试图做的是踢一个特定的用户,然后使用bot将邀请发送回discord服务器。这是一个愚蠢的想法,但我真的想让它发挥作用。 我特别遇到的问题是如何踢一个特定的用户(带有用户标识),然后将该用户DM。 谢谢! 这里的代码: 这样做的目的是,如果具有适当角色类型的人一个特定的不一致用户id()被踢,机器人会自