discord.py - 如何使用消息类型
问题描述
所以我试图让机器人在premium_guild_subscription
消息到来时做一些事情。我努力了:
@bot.event
async def on_message(message):
MessageType = discord.MessageType
if MessageType == 'pins_add':
await message.channel.send('ITS WORKING!!!')
但它不工作。当消息到来时,上面的代码什么也不做。如果我这样做,message.MessageType
那么它会这么说message object has no attribute MessageType
。
解决方案
您需要使用instance
一个类并比较它以查看它是否是正确的类型,而不是将类本身与字符串进行比较。
@bot.event
async def on_message(message):
if message.type == discord.MessageType.pins_add:
await message.channel.send('ITS WORKING!!!')
另一个例子:
@bot.command()
async def test(ctx):
print(ctx.message.type == discord.MessageType.pins_add)
print(ctx.message.type == discord.MessageType.default)
结果是
!test
> False
> True
推荐阅读
- javascript - 如何在移动视图上更改引导轮播的图像?
- java - 编译器如何知道在提交中使用哪个 lambda(Callable
任务)或在 ExecutorService 中提交(可运行任务)? - mysql - Apache 中的 PHPMyAdmin 500 内部服务器错误
- python - 如何将特定字母添加到变量然后使其成为字符串
- laravel - 尝试使用 laravel 8 获取非对象的属性“id”
- php - Laravel 雄辩错误期望参数 1 在尝试使用 sum 时为字符串
- scikit-learn - 绘制决策树未给出预期结果
- html - 出现不需要的左边距
- python - 如何一次创建多个数组
- html - 如何在移动视图中使 Bulma 框元素中的元素全宽