你好,我试图与我的机器人不和谐沟通,但它没有回答机器人在线,但这里没有回答以下代码:
import discord
client = discord.Client(intents=discord.Intents.default())
client.run("token")
@client.event
async def on_message(message):
if message.content == "ping":
await message.channel.send("pong")
您需要启用消息内容意图。将此添加到intent定义下的代码
intents.message_content = True
然后转到开发人员仪表板并在Privileged Intents
上启用Message Content
,之后您的代码应该可以工作;-)
上面提到的message_content
意图是必要的,但这并不是这里唯一的错误。
当您调用client.run()
时,它下面的任何内容都不会执行,直到客户机停止运行。这意味着永远不会创建on_message
事件。client.run()
应该是文件的最后一行。
让您的bot回复发送的消息需要message_content意图。
对于intents=discord.Intents.default()
,以下意图被禁用:
- 自我。呈现(=让你的bot看到丰富的呈现,例如正在玩什么游戏)
- 自我。会员(=让你的机器人看到一个公会的用户)
- 自我。message_content(=让你的bot看到消息的内容)
你现在可以启用所有提到的意图或只启用特定的意图。如果你想发送消息,在响应发送的消息时,你需要intentself.message_content
。
您还可以添加所有意图以避免将来出现任何问题(请注意,在使用一定数量的Discord服务器后,您需要申请使用所有特权意图)
intents = discord.Intents.all()
client = discord.Client(intents=intents)
您应该考虑激活intent:
访问开发者门户>选择你的应用程序>特权网关意图。
要在Discord.py中进一步编程,请考虑阅读文档,因为有一个新版本的Discord.py。