Discord 警告命令出现问题

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.

我编写此命令是为了触发添加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 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)
}