Quick.db如何检测inv_键是否存在Deer值(Discord.js v12经济机器人场景)
实现背包Deer检测功能方案
你用的db.push是将猎物存入用户ID对应inv_键的数组中,检测逻辑基于数组值判断即可,适配quick.db + Discord.js v12的实现如下:
基础判断逻辑
核心代码非常简单,先取背包数据再做值匹配即可:
// 取出用户背包数据,为空时默认赋值空数组避免报错 const userInv = db.get(`${message.author.id}inv_`) || [] // 检测是否存在Deer,返回布尔值true/false const hasDeer = userInv.includes('Deer')
示例1:集成到现有hunt命令(例如已有鹿时提示不可重复获取)
修改后的hunt命令代码:
if(message.content === `${defaultprefix}hunt`){ // 先检测用户是否已经有鹿 const userInv = db.get(`${message.author.id}inv_`) || [] if(userInv.includes('Deer')) { return message.channel.send("你已经有一只鹿了,先把它处理掉再打猎吧!") } var animalHunt = [1 , 2 , 3 , 4 , 5] var animalHunted = animalHunt[Math.floor(Math.random()*animalHunt.length)]; if(animalHunted === 1){ db.push(message.author.id + 'inv_', 'Deer') message.channel.send("你打猎时捉到了一只鹿 🦌") } else { message.channel.send("你转了一圈什么猎物都没找到,下次再来试试吧") } }
示例2:单独的查鹿命令
如果你需要做单独的背包查询功能,可以参考这个写法:
if(message.content === `${defaultprefix}checkdeer`){ const userInv = db.get(`${message.author.id}inv_`) || [] if(userInv.includes('Deer')) { message.channel.send("你的背包里有一只鹿 🦌") } else { message.channel.send("你还没有打到鹿哦,快去打猎试试吧") } }
内容的提问来源于stack exchange,提问作者vaijayanti pethe
相关产品推荐
相关产品推荐

