我正在尝试使用 pycord 获取通过我的机器人在服务器中发送的消息的 message.content。我已经在谷歌上搜索了一个小时,试图找到任何与我所做的不同的东西,但没有运气。
这是我写的(简化的):
还有一个编辑:我应该提到我已经尝试过 @bot.event 和 @bot.listen,最后有和没有 () 。我还确保我邀请它时获得了必要的权限。
import discord
bot = discord.Bot()
token = [token would go here]
intents = discord.Intents.default()
intents.typing = True
intents.messages = True
intents.message_content = True
@bot.event
async def on_message(message):
print(f'Recieved {message.content}')
bot.run(token)
从那里,我应该得到
Recieved {message.content}
对于服务器中发送的每条消息。 然而,我在 shell 中得到的只是
Receieved
,没有任何消息内容。
是的,我已在不和谐开发门户的机器人仪表板中切换了消息内容意图。
我可以使用客户端对象而不是机器人来实现我想要的结果,但这阻止我使用我需要的斜杠命令,并且我无法同时运行这两个命令。那么有人知道 pycord 的交易到底是什么吗?
已修复:添加此块:
intents = discord.Intents.default()
intents.typing = True
intents.messages = True
intents.message_content = True
bot = discord.Bot(intents=intents)
已经解决了。我现在觉得自己很蠢,但这就是这个爱好的发展方向。