【问题标题】:Make a command in Discordjs that only executes if the member is admin [duplicate]在 Discordjs 中创建一个仅在成员为管理员时执行的命令 [重复]
【发布时间】:2022-01-02 22:17:37
【问题描述】:

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

//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 文档中获取了此代码,但无法正常工作????

【问题讨论】:

  • 你能解释一下“它不起作用”吗?它现在在做什么,是否有任何错误?请更新问题:)

标签: javascript discord discord.js command bots


【解决方案1】:

permissionsUser 类型上不存在,这是 Message#author 返回的内容。使用Message#member,它返回一个GuildMember

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-11-13
    • 2018-12-27
    • 1970-01-01
    • 1970-01-01
    • 2018-04-06
    • 1970-01-01
    • 2021-04-26
    相关资源
    最近更新 更多