【问题标题】:Discord.js: ban user that reacted to a message with emojiDiscord.js:禁止对带有表情符号的消息做出反应的用户
【发布时间】:2021-12-17 14:30:31
【问题描述】:

我正在开发一个不和谐的机器人,它应该禁止使用特定表情对特定消息做出反应的成员。我为 messageReactionAdd 事件创建的文件当前包含以下代码:

module.exports = {
    name: 'messageReactionAdd',
    execute(client, reaction, user) {
        const channel = client.channels.cache.find(channel => channel.name === 'test');
        let message = 874736592542105640;
        let emotes = ['kannathinking', '????'];
        let roleID = (reaction.emoji.name == emotes[0] ? '874730080486686730' : '874729987310235738')

        if (message == reaction.message.id && (emotes[0] == reaction.emoji.name || emotes[1] == reaction.emoji.name)) {
        user.ban();
        channel.send(`${user} was banned`);
        }
    }
}

但是此代码不起作用并引发以下错误:

user.ban() 不是函数

在做了一些研究后,我发现 ba 命令仅适用于 GuildMember 对象。不幸的是,这些不是在调用 messageReactionAdd 时创建的。有谁知道如何解决它?

【问题讨论】:

    标签: javascript discord discord.js


    【解决方案1】:

    您不必获取GuildMember 对象,您可以通过GuildMemberManager 的ID 禁止用户,可以通过reaction.message.guild.members 从反应对象中找到该用户

    因此,您可以使用而不是使用user.ban()

    reaction.message.guild.members.ban(user.id)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-04
      • 2020-09-19
      • 1970-01-01
      • 2020-11-14
      • 2021-08-11
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      相关资源
      最近更新 更多