[英]First name mentions in a text using discord.js
I am trying to make some sort of kick system. 我正在尝试建立某种踢腿系统。 I would like to know how I would get the first name mentioned in a text.
我想知道如何得到文字中提到的名字。
client.on("message", (message) => {
if (message.member.hasPermission(["KICK_MEMBERS"],["BAN_MEMBERS"])){
if(message.content == "!kick"){
let member = message.mentions.members();
console.log(member)
member.kick("You have been kicked").then ((member) => {
message.channel.send( member.displayName + " has been Kicked!");
})
}
}
});
No error is thrown that I know of. 我没有发现任何错误。
First off, if you want to check multiple permissions in GuildMember.hasPermission()
, you need to pass an array. 首先,如果要在
GuildMember.hasPermission()
检查多个权限, GuildMember.hasPermission()
需要传递一个数组。 The way your code is written now, you're passing an array with "KICK_MEMBERS"
as the permissions to check and an array with "BAN_MEMBERS"
for the explicit
parameter. 现在编写代码的方式是,传递一个以
"KICK_MEMBERS"
作为检查权限的数组,以及一个以"BAN_MEMBERS"
作为explicit
参数的数组。
Solution: message.member.hasPermission(["KICK_MEMBERS", "BAN_MEMEBRS"])
解决方案:
message.member.hasPermission(["KICK_MEMBERS", "BAN_MEMEBRS"])
Secondly, you're declaring member
as a Collection, when it should be a GuildMember. 其次,当
member
应该是GuildMember时,您将其声明为Collection。
Solution: const member = message.mentions.members.first()
解决方案:
const member = message.mentions.members.first()
client.on("message", async message => {
if (message.content === "!kick" && message.member.hasPermission(["KICK_MEMBERS", "BAN_MEMBERS"])) {
try {
const member = message.mentions.members.first();
if (!member) return await message.channel.send(`No user mentioned.`);
await member.kick(`Kicked by ${message.author.tag}`);
await message.channel.send(`${member.user.tag} has been kicked.`);
} catch(err) {
console.error(err);
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.