在 Discordjs 中创建一个命令,仅当成员是管理员时才执行

Make a command in Discordjs that only executes if the member is admin

我只想为管理员创建一个命令。

//comando nick
        if(comando === 'nick'){
            if (message.author.permissions.has(!Permissions.STAGE_MODERATOR)) return message.reply('No Perms!');
            else{
                if(args == ''){
                    message.channel.send(`my message`);
                }
                else{
                    message.guild.members.cache.get(client.user.id).setNickname(`${args}`);
                    message.channel.send(`my message`);
                }
            }
        }

但我遇到了这个问题:

if (message.author.permissions.has(!Permissions.STAGE_MODERATOR)) return message.reply('No Perms!');

TypeError: Cannot read properties of undefined (reading 'has')

我在 Discord Js 文档中使用了这段代码,但没有用

permissions 在类型 User which is what Message#author returns. Use Message#member which returns a GuildMember

上不存在
if (message.member.permissions.has(!Permissions.STAGE_MODERATOR)) return message.reply('No Perms!')

另请注意,您使用的逻辑 NOT 运算符 (!) 有误。将其放在 if 语句的开头而不是作为权限(!Permissions.STAGE_MODERATORfalse

if (!message.member.permissions.has(Permissions.STAGE_MODERATOR)) return message.reply('No Perms!')