You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 07:57:02