【发布时间】:2021-06-02 01:56:29
【问题描述】:
我正在尝试根据 JSON 数组中的元素等于什么来输出不同的命令。因此,如果 PerkData.perks[i].character = "Survivor",它将输出 "survEmbed"。以下是我尝试执行的以“幸存者”为字符元素的命令时出现的错误:
perk.js:
const Discord = require('discord.js');
const PerkData = require('./perk.json');
module.exports = {
name: 'perk',
args: true,
execute(message, args) {
for (let i = 0; i < PerkData.perks.length; i++) {
if (PerkData.perks[i].id.toLowerCase() === args[0].toLowerCase()) {
const perkEmbed = new Discord.MessageEmbed()
.setColor('#D41C1C')
.setTitle('__**' + PerkData.perks[i].name + '**__')
.setURL(PerkData.perks[i].url)
.setThumbnail(PerkData.perks[i].gif)
.setDescription('A teachable unique [' + PerkData.perks[i].character + '](' + PerkData.perks[i].characterURL + ') Perk <:Icon_Perk:815066150865469481>. It can be unlocked for all other characters from Level ' + PerkData.perks[i].lvl + ' onwards:')
.addField('__Description__', PerkData.perks[i].description, false)
message.channel.send(perkEmbed)
}
else if (PerkData.perks[i].id.toLowerCase() === args[0].toLowerCase() && PerkData.perks[i].character === 'Survivor') {
const survEmbed = new Discord.MessageEmbed()
.setColor('#D41C1C')
.setTitle('__**' + PerkData.perks[i].name + '**__')
.setDescription(PerkData.perks[i].name + 'is a general ' + PerkData.perks[i].character + ' Perk <:Icon_Perk:815066150865469481>.')
message.channel.send(survEmbed)
}
}
}
}
perk.json:
{
"perks": [
{
"id": "alert",
"name": "Alert",
"url": "",
"gif": "",
"character": "Feng Min",
"characterURL": "",
"lvl": "",
"description": ""
},
{
"id": "spine-chill",
"name": "",
"url": "",
"gif": "",
"character": "Survivor",
"lvl": "",
"description": ""
}
}
(我的 JSON 文件比那个大得多,但我没有包含整个文件。)
【问题讨论】:
标签: javascript node.js json discord discord.js