python - 打印机器人消息 discord.py
问题描述
discord.py 有什么变化吗?从昨天开始,我的机器人不工作了。
当另一个机器人写一些东西时,他们应该提到某人
async def on_message(message):
if message.author.id == 123456789: #any bot ID
if message.content.startswith(
"Alright"): #message
await message.channel.send("<@123213213321231> look")
print("Done")
我试图打印来自特定频道的消息,以查看机器人消息是否有任何变化,但我什至无法打印它们..
async def on_message(message):
if message.channel.id == 123456789:
print(message.content)
例如 Carlbot - 它打印我的消息,但 carlbot 消息是空格......
abc
!lock
!unlock
?remindme 1min blahblah
我没有改变它工作了一个多月的任何东西,突然它没有,我不知道为什么。
解决方案
您是否启用了意图?
(来自 d.py 服务器!)
什么是意图?
截至 2020 年 10 月 28 日,Discord 要求用户声明他们的机器人运行需要什么样的信息(即事件)。这是以意图的形式完成的。您可以在此处阅读有关意图的更多信息:https ://discordpy.readthedocs.io/en/latest/intents.html
默认情况下,某些意图(例如成员和状态)被禁用,因为它们被称为特权。这意味着您需要采取一些额外的步骤来支持它们。在此处阅读特权意图:https ://discordpy.readthedocs.io/en/latest/intents.html#privileged-intents
如果您在代码中使用 on_member_* 事件,如果不进行更改,您的机器人将不再运行!
如何启用它们的步骤:
1 - 在代码中
intents = discord.Intents.default()
intents.members = True
bot = commands.Bot(command_prefix=...., intents=intents)
2 - 在不和谐的开发者门户应用程序 > yourApplication > bot > 向下滚动然后检查这些https://imgur.com/a/oE7LrIa(只有你需要的!)
推荐阅读
- python - flask-user 限制用户注册
- apache - 通过 .htaccess 屏蔽子域 IP 地址(Url)
- file - 如何在ROS中找到生成文件的程序?
- azure - sparklyr livy 协议中的 Kerberos 参数
- java - Maven 3:从孙子 pom 访问 parent.parent.version
- sql - 池上的每个查询都在连接时触发
- c# - 与 C++ std::map::insert 行为相比,C# SortedDictionary 效率
- r - 仅搜索和替换 R 中的特定行
- python - 在python的方法调用中选择性地设置一些类属性的便捷方法
- php - 即使在 heroku 上启用了 ext-ftp 和 ext-openssl 也未定义 PHP 7.1 ftp_ssl_connect