Discord 警告命令出现问题
我编写此命令是为了触发添加3个不同级别的警告,但当我在服务器上运行discord命令时,警告级别在1之后停止。任何帮助都将不胜感激Discord 警告命令出现问题,discord,discord.js,Discord,Discord.js,我编写此命令是为了触发添加3个不同级别的警告,但当我在服务器上运行discord命令时,警告级别在1之后停止。任何帮助都将不胜感激 if (command === "warn") { if (!message.member.roles.some(r => ["Members", "Pro Team"].includes(r.name))) return message.reply("Sorry, you don't have permissions to do this.
if (command === "warn") {
if (!message.member.roles.some(r => ["Members", "Pro Team"].includes(r.name)))
return message.reply("Sorry, you don't have permissions to do this. if you have problems with a member please message @GoldenCodex#0001");
let warning1 = message.guild.roles.get("604071520381435954");
let warning2 = message.guild.roles.get("604071671531307039");
let warning3 = message.guild.roles.get("604071778809151680");
let member = message.mentions.members.first();
member.addRole(warning1).catch(console.error)
if (message.member.roles.has(warning1)) {
member.addRole(warning2).catch(console.error);
} else if (message.member.roles.has(warning2)) {
member.addRole(warning3).catch(console.error);
}
}
从外观上看,我假设用户正在保留角色
warning1
?如果是,这意味着第一条If语句将始终被命中,这意味着第二条语句将永远不会被命中。我建议在分配了warning2
后,尝试删除warning1
角色
另一方面,在分配警告1
之前,应检查用户是否具有角色成员1
,否则用户将始终自动设置为警告2
编辑:看起来您正在尝试检查消息。成员
具有警告1
的角色,但消息。成员
将是管理员(尝试警告的人)。只需更改if语句即可检查member.roles.has()
例如
仍然会遇到同样的问题我想我已经发现了您的问题,您正在尝试查看
消息。成员
具有警告1
的角色,但是消息成员将是执行该角色的管理员,我将更新我的代码,以便它检查成员
是否具有该角色
...
if (member.roles.has(warning1)) {
member.removeRole(warning1).catch(console.error);
member.addRole(warning2).catch(console.error);
} else if (member.roles.has(warning2)) {
member.removeRole(warning2).catch(console.error);
member.addRole(warning3).catch(console.error);
else {
member.addRole(warning1).catch(console.error)
}