我需要朋友使用Discord.js对此代码进行一些帮助。我似乎不太可能编写此代码,我想要的是:
当人/成员的角色高于机器人时,机器人将发送一条消息,表明机器人无法踢出具有较高角色的成员,但是当机器人角色以下的人被踢出时
错误是: 该机器人无法踢出该机器人角色之上或之下的所有成员
有什么解决办法吗?也许我想念一些东西
const rolepositionerror = new Discord.MessageEmbed()
.setDescription('You can\'t kick members with equal or higher position!')
.setColor("FF0000")
const targetMember = message.mentions.members.first() || message.guild.members.cache.get(args[0])
const authorHighestRole = message.member.roles.highest
const targetHighestRole = targetMember.roles.highest
if(targetHighestRole = authorHighestRole) return message.channel.send(rolepositionerror)
if(targetMember) {
targetMember.kick()
message.channel.send(userkicked)
}
答案 0 :(得分:0)
Discord.js的GuildMember
具有一个名为GuildMember#kickable
的属性,如果可以踢用户,该属性将返回true,您要做的就是将其添加到代码中:
const targetMember = message.mentions.members.first()
|| message.guild.members.cache.get(args[0]);
if(targetMember) {
if (targetMember.kickable) {
// If you can kick the member, then...
targetMember.kick()
message.channel.send(userkicked)
} else {
// If you can't kick the member, then...
const roleError = new Discord.MessageEmbed()
.setDescription(
"This member can't be kicked!\n" +
"Check if they have a higher role than the bot and if the bot has permissions!"
)
.setColor("FF0000");
return message.channel.send(roleError)
}
}
有关更多信息,请查看以下链接: