【发布时间】:2021-06-11 16:37:43
【问题描述】:
抱歉标题令人困惑,我会澄清一下。我正在尝试让机器人检查用户是否在他们的 quick.db 库存中具有特定角色,如果有,它将配备该角色。我遇到的问题是,即使在库存中使用角色,它也会返回角色不拥有的错误。我感觉问题出在if (db.has(message.author.id + '.hot rod red')) 行,因为我不太确定如何使用 quick.db 格式化检查角色。很抱歉代码混乱,如果有人知道如何解决这个问题,请告诉我,谢谢!
if (db.has(message.author.id + '.hot rod red')) {
if (message.member.roles.cache.some(role => role.name === 'hot rod red')) {
let embed = new Discord.MessageEmbed().setDescription('You already have this role equipped!');
return message.channel.send(embed);
} else {
await message.guild.members.cache.get(user.id).roles.add('733373020491481219');
let embed = new Discord.MessageEmbed().setDescription(`You now have the ${message.guild.roles.cache.get('733373020491481219')} role!`);
message.channel.send(embed);
user.roles.remove(user.roles.highest);
}
} else {
let embed = new Discord.MessageEmbed().setDescription('You do not own this role!'); // ERROR HERE; GIVES ROLE EVEN WITHOUT OWNING
return message.channel.send(embed);
}
【问题讨论】:
-
尝试
console.log(db.get(message.author.id + '.hot rod red'))检查用户是否真的有这个角色 -
看起来好像不起作用,它仍然返回相同的东西,但现在在控制台中,它返回 false。它可能与 .hot rod red 的格式有关吗?这是一个角色,所以它在库存中显示为“@hot rod red”
标签: javascript node.js discord discord.js quick.db