我正在为客户开发机器人,我正在制作一个可由 (prefix) warn <user mention>
触发的警告系统。我有下面的代码。
我可以运行一次命令,它会添加警告 1 角色,但后续命令不会添加警告 2 或 3。
if (mentionedUser.roles.cache.has(warn1)){
if (mentionedUser.roles.cache.has(warn2)){
message.channel.send('Already has 2 warnings.');
mentionedUser.addRole(warn3);
}
else{
message.channel.send('Already has 1 warning.')
mentionedUser.addRole(warn2);
}
}
else{
mentionedUser.roles.add(warn1);
message.channel.send('Warned the user.');
}
答案 0 :(得分:0)
看起来您正在混合使用 v11 和 v12 语法。您使用 warn1
(v12) 添加 roles.add
但使用 warn2
(v11) 添加 user.addRole
。如果 warn1
有效,则您使用的是 discord.js v12,因此您应该在任何地方使用 mentionedUser.roles.add
:
// role IDs
const warn1 = '808376848172974143';
const warn2 = '808376936006418524';
const warn3 = '808377003580457000';
const mute = '808377222884753459';
const beenMuted = '810008640802258975';
const mentionedUser = message.mentions.members.first();
if (mentionedUser.roles.cache.has(warn1)) {
if (mentionedUser.roles.cache.has(warn2)) {
message.channel.send('Already has 2 warnings.');
mentionedUser.roles.add(warn3);
}
else {
message.channel.send('Already has 1 warning.')
mentionedUser.roles.add(warn2);
}
}
else {
mentionedUser.roles.add(warn1);
message.channel.send('Warned the user.');
}
使用上面的代码正确添加了角色: