Heyo Axmyo 在这里,
如果用户提到超过 5 个人,我想自动禁止用户,而不是机器人
但是我尝试使用的代码没有任何作用..
任何帮助将不胜感激!
client.on("message", message => {
if(message.mentions.members.size > 5) {
message.author.ban();
}
})
答案 0 :(得分:6)
您的方向是正确的,您的 if 语句是正确的。
message.author
returns a User
.
but .ban()
is available only on GuildMember
.
因此您需要将 User
转换为 GuildMember
。幸运的是,消息对象包含它发送的 Guild
,因此您可以执行以下操作:
client.on("message", message => {
if(message.mentions.members.size > 5) {
const user = message.author;
const guildMember = message.guild.member(user);
guildMember.ban();
}
})
请注意,.ban()
会返回一个承诺,因此如果您想在禁令后执行其他操作,最好执行以下操作:
client.on("message", async message => {
if(message.mentions.members.size > 5) {
const user = message.author;
const guildMember = message.guild.member(user);
await guildMember.ban();
// Do other things...
}
})
消息对象有一个成员属性,谢谢Itamar S
client.on("message", async message => {
if(message.mentions.members.size <= 5) return;
await message.member.ban();
// Do other things...
})