当前位置: 首页 > 知识库问答 >
问题:

在表情符号反应后无法让discord bot分配角色

尉迟冯浩
2023-03-14

我在尝试让我的discord机器人添加基于表情符号反应的角色时遇到问题。当我使用该命令时,我的机器人将嵌入消息和表情符号,但表情符号不可点击。另外,当我键入命令时,我会得到未处理的PromisejectionWarning:DiscordAPIError:Unknown表情符号错误(节点:12916)

module.exports = {
name: 'reactionrole',
description: "Sets up a reaction role message!",
async execute(message, args, Discord, client) {
    const channel = '810124665870325648';
    const Pug_Role = message.guild.roles.cache.find(role => role.name === "Pugs");
    

    const Pug_Emoji = ':gun:';
    

    let embed = new Discord.MessageEmbed()
        .setColor('#e42643')
        .setTitle('Pugs Click Here!')
        .setDescription('Choosing Pug will allow you to join some channels!\n\n'
            + `${Pug_Emoji} Pugs`
            );

    let messageEmbed = await message.channel.send(embed);
    messageEmbed.react(Pug_Emoji);
    

    client.on('messageReactionAdd', async (reaction, user) => {
        if (reaction.message.partial) await reaction.message.fetch();
        if (reaction.partial) await reaction.fetch();
        if (user.bot) return;
        if (!reaction.message.guild) return;

        if (reaction.message.channel.id == channel) {
            if (reaction.emoji.name === Pug_Emoji) {
                await reaction.message.guild.members.cache.get(user.id).roles.add(Pug_Role);
            }
            
        } else {
            return;
        }

    });

    client.on('messageReactionRemove', async (reaction, user) => {

        if (reaction.message.partial) await reaction.message.fetch();
        if (reaction.partial) await reaction.fetch();
        if (user.bot) return;
        if (!reaction.message.guild) return;


        if (reaction.message.channel.id == channel) {
            if (reaction.emoji.name === Pug_Emoji) {
                await reaction.message.guild.members.cache.get(user.id).roles.remove(Pug_Role);
            }
            
        } else {
            return;
        }
    });
}

}

暂时还没有答案

 类似资料:
  • 好的,多亏了~slothiful~,我终于让表情符号起作用了。 我没有试图让bot根据对作为服务器规则发布的消息的反应来分配角色。 谢谢你的回答

  • 我有问题得到反应角色的工作与自定义表情符号。如果我使用不和谐表情符号,它会嵌入消息,创建反应,并在点击反应时应用角色。 然而,如果我使用一个自定义的emoji,它会嵌入消息并创建正确的反应,但是它不提供当emoji被点击时的角色。 我使用了相同的编码,当交换不和谐和自定义的表情符号,唯一的改变是表情符号的ID。 我使用的完整代码是: 我们将非常感谢对此提供任何帮助。

  • 在管理面板中保存一个带有表情符号的字段时,我在django中出现了下面的错误。 操作错误位于/admin/core/message/add/(1366,“第1行“名称”列的“\xF0\x9F\x98\x9E\xF0…”处 我确信数据库已准备好使用,因为我可以在中写入/读取这些表情符号。 此外,保存的表情符号在中正确显示,但显示

  • 在机器人发送消息后,我想要一个表情符号反应。下面的代码仅在我键入命令后执行。例如,以下是一些示例输出: 输出不正确: 用户输入:规则显示表情反应机器人消息 正确输出:用户输入:规则Bot消息显示有表情反应

  • 我正在努力为我的服务器做一个discord.js机器人,我为学校里的人做了一个。我试图使一个通道,如果你对某些消息做出反应,它会给你一个角色(它会让你访问该类的文本通道)。 这是我到目前为止所尝试的,但是,它没有给我/其他人对它的角色做出反应,也没有返回错误消息。 另外,如果他们不履行职责,我怎么能做到这一点呢? 编辑:它似乎只从机器人启动后发送的缓存消息/消息中获得反应。此外,第一个if(mes

  • 我是React的初学者,我正在基于React文档开发一个项目。 后端 API 服务器创建为节点.js并由 PM2 作为 http: // 本地主机: 4005 进行管理。前端使用创建-反应-应用创建了项目。 为了参考后端的api,我参考本手册设置了代理设置。 我试了两种包装。json代理配置和使用http代理中间件的手动配置,但都不起作用。 代理已配置,但webpack dev服务器调用自身,如下