【问题标题】:Working on fixing perms for my Discord bot为我的 Discord 机器人修复烫发
【发布时间】:2020-05-27 10:42:48
【问题描述】:

我目前正在开发 Discord 机器人。我有一行代码使它只有某个等级可以使用它,我想使它不是只有 1 个等级能够使用该命令,任何具有管理员等级的角色都可以。我的代码:


bot.on('message', message => {

    let args = message.content.substring(config.prefix.length).split(" ");

    switch (args[0]) {
        case 'kick':
            if (!args[1]) message.channel.send("No person included.")

            const user = message.mentions.users.first();

            if (user) {
                const member = message.guild.member(user);

                if (member) {
                    member.kick('You were kicked.').then(() => {
                        message.reply(`Sucessfully kicked @${user.tag}.`);
                    }).catch(err => {
                        message.reply(`I can\'t kick the member. (perms?)`);
                        console.log(err);
                    });
                } else {
                    message.reply("That user isn\`t in this server!");
                }
            }
            break;
    }
})

【问题讨论】:

    标签: discord discord.js


    【解决方案1】:

    要使其只有具有管理员角色并使用该命令的人,您可以将这段代码放在顶部:

    if(!message.member.roles.cache.has('InsertAdminRoleID')) return
    

    这样,只有拥有管理员角色的人才能使用该命令。

    【讨论】:

    • 不是角色,而是管理员权限。
    • 然后尝试类似if(!message.author.hasPermission('ADMINISTRATOR)) return;` 不太确定这是否过时,希望它对你有用:)
    • 抱歉,改用if(!message.author.hasPermission(['ADMINISTRATOR']))
    • hasPermission 不是函数。
    • 或许可以尝试将 'author' 换成 'member'?
    猜你喜欢
    • 1970-01-01
    • 2018-01-19
    • 2020-12-23
    • 2022-12-18
    • 2020-11-08
    • 2021-07-01
    • 2019-08-10
    • 1970-01-01
    • 2021-06-13
    相关资源
    最近更新 更多