首页 > 解决方案 > 如何使用消息类型

问题描述

所以我试图让机器人在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

标签: discord.py

解决方案


您需要使用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

推荐阅读