data.embeds[0][LIST_ITEM_VALUE_REQUIRED]:ModelType的列表项值是必需的
调用返回要显示的嵌入的斜杠命令时出现此错误:
import { EmbedBuilder } from "discord.js"
import fetch from "node-fetch"
export const traitDescription = async (trait) => {
console.log('here')
let result
let json = await fetch('https://temtem-api.mael.tech/api/traits').then()
try { result = await json.json(); } catch (err) { result = null }
console.log(result)
var traitDes = false
if (trait.toLowerCase() === 'traits') {
return 0
}
result.forEach((item) => {
if (trait.toLowerCase() === item.name.toLowerCase()) {
traitDes = item
console.log(traitDes)
}
})
if (traitDes != false) {
traitDes = new EmbedBuilder()
.setTitle(`${traitDes.name}`)
.setDescription(`${traitDes.effect}`)
.setURL(`${traitDes.wikiUrl}`)
} else {
return 0
}
console.log(traitDes)
return traitDes
}
这个函数在API中搜索通过slash命令输入的trait名称,如果没有trait名称,则返回一个包含数据的embed,或者返回整数0。
在我的索引中。js文件我在'interactionCreate'函数中调用了如下的slash命令(我还有其他可以工作的命令):
else if (commandName === 'trait') {
let traitName = options.getString('traitname')
const traitEmbed = traitDescription(traitName)
if (traitEmbed === 0) {
interaction.reply({
content: 'This is not a trait <:bruhvel:1100574618110132255>',
ephemeral: true,
})
} else {
const messageId = interaction.reply({ embeds: [ traitEmbed ] })
}
}
我对这个bug做得越多,我就越困惑。我已经确保我在最新版本的节点,不和谐。js和node-fetch我有一个API的print语句,有时它只是随机打印出api并工作,但仍然给出错误。
1条答案
按热度按时间f0brbegy1#
我想明白了我的InteractionCreate函数需要是异步的,才能在我用斜杠命令调用的异步函数上使用“await”