Discord 如何知道用户是否已在addrole命令中拥有角色
我想发送一条错误消息,说明如果用户在addrole命令中拥有该角色,则该用户已经拥有该角色。我当前的命令是:Discord 如何知道用户是否已在addrole命令中拥有角色,discord,discord.js,Discord,Discord.js,我想发送一条错误消息,说明如果用户在addrole命令中拥有该角色,则该用户已经拥有该角色。我当前的命令是: const { MessageEmbed } = require("discord.js"); module.exports = { name: "addrole", description: "adds a role to a member", execute: async (message , args) =&
const { MessageEmbed } = require("discord.js");
module.exports = {
name: "addrole",
description: "adds a role to a member",
execute: async (message , args) => {
if (!message.member.hasPermission("MANAGE_ROLES")) return message.channel.send("Invalid Permissions")
let member = message.mentions.members.first();
let role = message.mentions.roles.first();
if (!member)
return message.reply("Please mention a valid member of this server");
if (!role) return message.reply("please mention a valid role of this server");
const highest = message.member.roles.highest;
if(highest.comparePositionTo(role) <= 0)
return message.channel.send(`You cannot add roles equal/higher to that member's highest role`)
let addroleembed = new MessageEmbed()
.setTitle(`:white_check_mark: ${role.name} has been added to ${member.user.tag}`)
.setFooter(`Action performed by ${message.author.tag}`)
.setColor('77B255')
addroleembed.setTimestamp();
member.roles.add(role);
message.channel.send(addroleembed)
}}
及
但这两个似乎都不起作用,有人知道这背后的原因吗?如果我不能使用这两种方法中的任何一种,你能给我一个解决方案吗?你需要结合你的两种尝试
if(message.member.roles.cache.has("role ID") {
//rest of your code
}
你需要结合你的两次尝试
if(message.member.roles.cache.has("role ID") {
//rest of your code
}
你太近了
使用has()
member.roles.cache.has();
了解更多信息您离我们太近了
使用has()
member.roles.cache.has();
了解更多
if(message.member.roles.cache.has("role ID") {
//rest of your code
}
member.roles.cache.has(<RoleID>);