0

所以我正在制作一个不和谐的游戏机器人,你可以通过打开箱子来收集角色,但问题是当你已经拥有角色时它们会再次出现。

我用的方法db.push

编码:

if(has === true){
  console.log(has)
  let embed = new discord.MessageEmbed()
.setTitle('Chest Opening | Clash Chest')
.setDescription("<@"+message.author+"> got:\n"+amount+" :coin:")
.setColor('RANDOM')
.setFooter('Created by Tahmid GS#1867')
 message.channel.send(embed)
  await db.fetch(`coin_${message.author.id}`)
  db.add(`coin_${message.author.id}`, amount)
}
else if(has === false){
  console.log(has)
await db.fetch(`troop_${message.author.id}`)
db.push(`troop_${message.author.id}`, nada)



let embed = new discord.MessageEmbed()
.setTitle('Chest Opening | Clash Chest')
.setDescription("<@"+message.author+"> got:\n"+amount+" :coin:\n||Common: "+nada+"||")
.setColor('RANDOM')
.setFooter('Created by Tahmid GS#1867')
  
  message.channel.send(embed)

   await db.fetch(`coin_${message.author.id}`)
  db.add(`coin_${message.author.id}`, amount)
  await db.fetch(`card_${message.author.id}`)
  db.add(`card_${message.author.id}`, 1)
}

has 是troop let has = db.has(_${message.author.id}, nada) 我用 let has = db.has( troop_${message.author.id}.nada) 和 let has = db.has(nada, troop_${message.author.id})

但这似乎不起作用,在控制台中是“假”

nada 是随机字符

4

1 回答 1

0

您正在检查数据库是否具有特定键。在键下的数据库中troop_${message.author.id}有一个数组。您想检查该数组是否包含该字符。

let has = (db.get(`troop_${message.author.id}`) || []).includes(nada);

此外,您可能想检查db.get()返回undefined或类似情况的可能性。在这种情况下,我们调用.includes()一个空数组。而不是收到错误TypeError: Cannot read property 'includes' of undefined

于 2021-07-20T18:36:44.350 回答