因此,当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
。
答案 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!!!')