使机器人搜索数组

时间:2019-03-20 11:06:34

标签: javascript arrays json discord.js

我正试图制造一个从info.json文件中接收信息的机器人,并将其以丰富的形式嵌入到Discord Channel中。

我一直遇到的问题,似乎我自己找不到解决方案,是我的JSON信息文件包含大量需要使用“前缀+播放器名称”命令访问的数组。 / p>

JSON中的数组示例:

{
  "playername": "riky",
  "age": 20,
  "height": 172
}

因此,当某人想要使用riky命令进行搜索时,例如,prefix + riky,机器人应将riky包含的所有信息放在最前面:age,{{ 1}}等。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

我用fs来获取您的json文件。我做一个for循环来遍历所有json数组并搜索您在命令中输入的播放器名称。如果漫游器找到具有此玩家名称的数组,他将年龄和身高分配给新变量。

此后,您可以创建RichEmbed并将其发送到频道中。

尝试使用以下代码:

const fs = require('fs');
const Discord = require('discord.js');

const jsonFile = fs.readFile('PATH of your JSON');
const playerName = msg.content.split(' ').slice(1);

let age;
let hight;

for (var i = 0; i < jsonFile.length; i++) {
  if (jsonFile[i].playername === playerName) {
    age = jsonFile[i].age;
    hight = jsonFile[i].hight;
  }
}

if (!age || !height) return message.channel.send('Couldn\'t find this player!');

const embed = new Discord.RichEmbed()
  .setTitle(playername)
  .addField('Age', age)
  .addField('Hight', hight);

message.channel.send({ embed });