gpt4 book ai didi

javascript - Bot 为用户分配一个 Angular 色,即使用户没有自己的 Angular 色

转载 作者:行者123 更新时间:2023-12-04 03:37:32 30 4
gpt4 key购买 nike

抱歉,标题令人困惑,我会澄清一下。我正在尝试让机器人检查用户是否在他们的 quick.db 库存中具有特定 Angular 色,如果有,它就会装备该 Angular 色。我遇到的问题是,即使在 list 中有 Angular 色,它也会返回 Angular 色不被拥有的错误。我感觉问题出在 if (db.has(message.author.id + '.hot rod red')) 行,因为我不太确定如何格式化检查quick.db 的 Angular 色。抱歉,代码困惑,如果有人知道如何解决这个问题,请告诉我,谢谢!

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);
}

最佳答案

可能会尝试类似let check = db.get(message.author.id+'.hot rod red')并检查它是否为真/假,我会说使用字符串而不是 bool 值,因为您可以使用 if(check === 'false/true'){}。你也可以这样做

if(!check || check === 'false'){ return 
let embed = new Discord.MessageEmbed().setDescription('You do not own this role!');
return message.channel.send(embed);
}

所以最终的代码是:

let check = await db.get(message.author.id + '.hot rod red');
let rejectEmbed = new Discord.MessageEmbed()
.setDescription('You do not own this role!');

if(!check){
return message.channel.send(rejectEmbed)
}
if(check === 'true'){
if (message.member.roles.cache.some(role => role.name === 'hot rod red')) {
let embed = new Discord.MessageEmbed().setDescription('You already have this role!');
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); // I'm unsure why this is here, this could be causing a potential error
}
}

如果还有什么问题欢迎评论!!我希望这对您有所帮助。

关于javascript - Bot 为用户分配一个 Angular 色,即使用户没有自己的 Angular 色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66620599/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com