如何使用MessageType

时间:2020-11-08 11:12:38

标签: 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

2 个答案:

答案 0 :(得分:0)

您需要使用一个类的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

答案 1 :(得分:-1)

在您的代码中,您尝试使用类。您必须从该类调用init函数。因此,您需要从MessageType访问message类型的数据。

根据API参考,您可以使用message.type访问MessageType对象。然后,您可以使用pins_add检查消息是否为message.type.pins_add类型。

@bot.event
async def on_message(message):
    if message.type == discord.MessageType.pins_add:
        await message.channel.send('ITS WORKING!!!')