出于某种原因,我试图编写一个Rolekick-bot,它可以正常工作,但是当我尝试调整响应消息以成功踢出脚步时,我注意到他试图踢出确切数量的成员服务器中的用户(即使他没有),他对7个成员进行了7次响应,对6个成员进行了6次响应,而只踢了具有预定角色的一个用户。
if(!message.member.roles.some(r=>["Admin", "Moderator"].includes(r.name)) )
return message.reply("You are not allowed to use this command.");
console.log('rolekick');
message.guild.members.forEach(member => {
if (member.roles.find(role => role.name === 'IDLE')) member.kick()
message.reply(`${member.user.tag} has been kicked by ${message.author.tag} because: IDLE`);
});
}
谢谢!
答案 0 :(得分:0)
您在if
循环中使用的forEach
块不正确,您需要在if
条件之后立即打开一个大括号,并在message.reply()
之后关闭它。
message.guild.members.forEach(member => {
if (member.roles.find(role => role.name === 'IDLE')) {
member.kick();
message.reply(`${member.user.tag} has been kicked by ${message.author.tag} because: IDLE`);
}
});
否则,if
仅适用于以下指令(member.kick()
),第二条语句适用于所有成员。