如何用discord.py创建反应角色?

时间:2020-09-22 15:36:35

标签: discord.py

我正在建立一个反应角色系统,但是当我与我输入的表情符号反应时,它什么也没做。代码在这里:

@bot.event
async def on_raw_reaction_add(payload):
    message_id = payload.message_id
    if message_id == 757982178691776635:
        guild_id = payload.guild_id
        guild = bot.get_guild(guild_id)
        if payload.emoji.name == 'white_check_mark':
            print('Role')

我在控制台中没有出现错误,并且没有在控制台中打印角色。

2 个答案:

答案 0 :(得分:1)

尝试打印payload.emoji.name的值,通常是表情符号本身。如果您要根据Unicode名称进行匹配,建议您使用unicodedata.name

答案 1 :(得分:0)

您可以从here获取表情符号字符,然后进行比较。

为了便于阅读,我将其缩短了一点。

/**
 * @inheritDoc
 */
public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('label', TextType::class, [
            'label'    => false,
            'disabled' => true,
        ])
        ->add('value', NumberType::class, [
            'label'  => false,
            'mapped' => false,
        ]);
}

/**
 * @inheritDoc
 */
public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults([
        'data_class' => Answer::class,
    ]);
}