如何为机器人输入角色以在多个服务器中访问命令?

时间:2020-06-27 03:52:27

标签: node.js discord.js

希望您能理解标题。我是制作Discord机器人的新手。 因此,我想知道是否有可能向机器人添加一个现有角色,以便具有该角色的用户可以访问Discord服务器中的命令?

由于我的机器人在多台服务器中都处于活动状态,所以我执行的代码仅适用于Discord服务器,因此我只在index.js中添加了角色,因此当我向该用户添加角色时,他们可以访问特定服务器命令。 但是,当我在某些服务器中添加bot后,它变得非常混乱。这是我所做的代码。

    switch(args[0]){ // ALL COMMANDS CAN BE FOUND AT THE COMMAND FOLDER
        case 'ping':
            if((!message.member.roles.cache.some(role => role.name === 'Residents'))&&(!message.member.roles.cache.some(role => role.name === 'Member'))&&(!message.member.roles.cache.some(role => role.name === 'Owner'))) return message.channel.send(donothavepermissions)
            bot.commands.get('ping').execute(message, args);
        break;
        case 'ip':
            if((!message.member.roles.cache.some(role => role.name === 'Residents'))&&(!message.member.roles.cache.some(role => role.name === 'Owner'))) return message.channel.send(onlyforedinburghresidents)
            bot.commands.get('ip').execute(message, args);
        break;
        case 'info':
            if((!message.member.roles.cache.some(role => role.name === 'Residents'))&&(!message.member.roles.cache.some(role => role.name === 'Member'))&&(!message.member.roles.cache.some(role => role.name === 'Discord Manager'))&&(!message.member.roles.cache.some(role => role.name === 'Owner'))) return message.channel.send(donothavepermissions)
            bot.commands.get('info').execute(message, args);
        break;
        case 'clear':
            if((!message.member.roles.cache.some(role => role.name === 'Mayor'))&&(!message.member.roles.cache.some(role => role.name === 'Assistant'))&&(!message.member.roles.cache.some(role => role.name === 'Discord Manager'))&&(!message.member.roles.cache.some(role => role.name === 'Officer'))&&(!message.member.roles.cache.some(role => role.name === 'Secretary'))&&(!message.member.roles.cache.some(role => role.name === 'Owner'))) return message.channel.send(donothavepermissions2)
            bot.commands.get('clear').execute(message, args);
        break;
        case 'poll':
            if((!message.member.roles.cache.some(role => role.name === 'Mayor'))&&(!message.member.roles.cache.some(role => role.name === 'Assistant'))&&(!message.member.roles.cache.some(role => role.name === 'Secretary'))&&(!message.member.roles.cache.some(role => role.name === 'Discord Manager'))&&(!message.member.roles.cache.some(role => role.name === 'Officer'))&&(!message.member.roles.cache.some(role => role.name === 'Owner'))) return message.channel.send(donothavepermissions2)
            bot.commands.get('poll').execute(message, args);
        break;
        case 'broadcast':
            if((!message.member.roles.cache.some(role => role.name === 'Mayor'))&&(!message.member.roles.cache.some(role => role.name === 'Assistant'))&&(!message.member.roles.cache.some(role => role.name === 'Secretary'))&&(!message.member.roles.cache.some(role => role.name === 'Discord Manager'))&&(!message.member.roles.cache.some(role => role.name === 'Officer'))&&(!message.member.roles.cache.some(role => role.name === 'Owner'))) return message.channel.send(donothavepermissions2)
            bot.commands.get('broadcast').execute(message, args);
            break;
        case 'help':
            if((!message.member.roles.cache.some(role => role.name === 'Residents'))&&(!message.member.roles.cache.some(role => role.name === 'Student'))&&(!message.member.roles.cache.some(role => role.name === 'Assistant'))&&(!message.member.roles.cache.some(role => role.name === 'Secretary'))&&(!message.member.roles.cache.some(role => role.name === 'Discord Manager'))&&(!message.member.roles.cache.some(role => role.name === 'Owner'))&&(!message.member.roles.cache.some(role => role.name === 'Members'))) return message.channel.send(donothavepermissions)
            bot.commands.get('help').execute(message, args);
        break;
        case 'say':
            if((!message.member.roles.cache.some(role => role.name === 'Mayor'))&&(!message.member.roles.cache.some(role => role.name === 'Discord Manager'))&&(!message.member.roles.cache.some(role => role.name === 'Officer'))&&(!message.member.roles.cache.some(role => role.name === 'Assistant'))&&(!message.member.roles.cache.some(role => role.name === 'Secretary'))&&(!message.member.roles.cache.some(role => role.name === 'Owner'))) return message.channel.send(donothavepermissions2)
            bot.commands.get('say').execute(message, args);
        break;
        }
})

如您所见,这非常混乱。 我想要的是,当Discord服务器所有者要在不访问index.js的情况下将现有角色(服务器上的角色)添加到我的机器人中时,它将保存它。就像MEE6机器人一样。

非常感谢您的帮助。

0 个答案:

没有答案