如何检查,如果用户在一台服务器有一定的权限?

时间:2021-01-07 04:49:02

标签: discord discord.js

我想提出一个删除消息我不和机器人指挥,我想,以确保用户的需求,以删除邮件中的“管理服务器”权限。在我拥有服务器的主帐户上,我能够使用该命令,但在我创建的测试帐户上,没有任何反应,并且在终端中出现错误:UnhandledPromiseRejectionWarning: RangeError [BITFIELD_INVALID]: 无效的位域标志或数字

module.exports = {
    name: 'clear',
    description: 'clears messages',
    async execute(message, args){
        if (message.member.hasPermission('MANAGE_SERVER')){
            if (!args[0]){
            message.reply('Please enter a valid amount of messages');
            }
        
            if (isNaN(args[0])){
            message.reply('Please enter a valid amount of messages');
            }
        
            if (args[0] > 100){
            message.reply('Please do not clear over 100 messages at once');
            }

            if (args[0] < 1){
            message.reply('Please enter a valid amount of messages');
            }

            await message.channel.messages.fetch({limit: args[0]}).then (messages => {
                message.channel.bulkDelete(messages);
            });
        }else{
            message.channel.reply("You don't have the required roles to use the command.");
        }



    }
}``` 

1 个答案:

答案 0 :(得分:0)

您的代码中有两个非常简单的错误:

  • 您使用了 MANAGE_SERVER,它不是属性。
  • 您使用了 message.channel.reply,它不是函数。

这是您的固定代码:

if (message.member.hasPermission('MANAGE_MESSAGES')){
        if (!args[0]){
        message.reply('Please enter a valid amount of messages');
        }
    
        if (isNaN(args[0])){
        message.reply('Please enter a valid amount of messages');
        }
    
        if (args[0] > 100){
        message.reply('Please do not clear over 100 messages at once');
        }

        if (args[0] < 1){
        message.reply('Please enter a valid amount of messages');
        }

        await message.channel.messages.fetch({limit: args[0]}).then (messages => {
            message.channel.bulkDelete(messages);
        });
    }else{
        message.reply("You don't have the required roles to use the command.");
    }

我使用了 MANAGE_MESSAGES,但您可以使用任何您想使用的东西,但它必须是 these 属性之一。您的第二个错误只需使用:message.reply 即可修复。