javascript - Quick.db discord.js
问题描述
我正在制作一个 userinfo 命令,该命令从 .db 文件返回项目,但它返回为[object Object]。我如何使它返回名称?这是我的代码:
const { MessageEmbed } = require(`discord.js`)
const db = require(`quick.db`);
exports.execute = async(client, message, args) => {
let member = message.mentions.members.first() || message.member;
let hasStarted = db.fetch(`started_${member.id}`)
let bal = db.fetch(`money_${member.id}`)
let items = db.get(`items_${member.id}`)
let displayItems;
let started;
if (bal === null) bal = 0;
if (items === null) {
displayItems = 'This user has no items!';
} else {
displayItems = items;
}
if (hasStarted === null) {
started = 'False'
} else {
started = 'True'
}
const userEmbed = new MessageEmbed()
.setTitle(member.displayName + '#' + member.user.discriminator + "'s Profile")
.addField(`Balance:`, bal)
.addField(`Items:`, displayItems)
.addField(`Has Started:`, started)
.setFooter(`Requested By: ${message.author.username}`, message.author.avatarURL({ dynamic:true }))
.setImage(member.user.avatarURL({ dynamic:true }))
message.channel.send(userEmbed)
}
exports.help = {
name: 'userinfo',
aliases: ['user'],
usage: 'userinfo <user>'
}
解决方案
Discord 不发送对象,而是发送字符串。如果数据是一个对象,你应该尝试:
// Send this, not object:
c.send(JSON.stringify(object)) // Also, you should wrap in a code block with the JSON language, it'll look much nicer
如果它是一个 Promise,你应该尝试:
c.send(await promise)