我正在尝试发出命令,如果作者具有管理员或所有者角色,则该命令有效。但我不知道如何检查用户是否具有“管理员”或“所有者”角色(多个角色)。我正在使用discord.js v12。
我的代码:
client.on('message', message => {
if (message.content.startsWith('!ban'))
if(message.member.roles.cache.find(r => r.name === "owner")) {
message.delete();
let member1 = message.mentions.members.first();
if(!member1) return message.channel.send("You need to mention the @user!").then((declineMsg) => {
declineMsg.delete({timeout: 5000});})
let banned = message.guild.roles.cache.find(role => role.name === "banned");
member1.roles.add(banned);
message.channel.send('Succesfully banned user!').then(message.delete({timeout: 5000}))}});
});
client.on('message', message => {
if (message.content.startsWith('!ban'))
if(message.member.roles.cache.find(r => r.name === "admin")) {
message.delete();
let member1 = message.mentions.members.first();
if(!member1) return message.channel.send("You need to mention the @user!").then((declineMsg) => {
declineMsg.delete({timeout: 5000});})
let banned = message.guild.roles.cache.find(role => role.name === "banned");
member1.roles.add(banned);
message.channel.send(`Succesfully banned user!`).then(message.delete({timeout: 5000}))}});
});
Run Code Online (Sandbox Code Playgroud)
你需要使用这样的东西:
let role1 = message.guild.roles.cache.find(r => r.name === "owner");
let role2 = message.guild.roles.cache.find(r => r.name === "admin");
if(!message.member.roles.cache.has(role1.id) && !message.member.roles.cache.has(role2.id)) return message.reply("User don't have required roles!")
Run Code Online (Sandbox Code Playgroud)