尝试使用 quick.db 制作经济型机器人,但我的命令不起作用

Posted

技术标签:

【中文标题】尝试使用 quick.db 制作经济型机器人,但我的命令不起作用【英文标题】:Trying to make a Economy bot with quick.db, but my command is not working 【发布时间】:2019-12-29 04:54:13 【问题描述】:

基本上,我正在尝试创建一个 discord.js/quick.db 经济系统,并尝试使用教程指导制作一个简单的平衡命令,该命令不会执行,但在日志。

我尝试研究如何做到这一点,遵循其他教程,但它只是让我回到这个错误。我已经为此安装了所有必需的软件包。

const Discord = require('discord.js')
const db = require('quick.db')

module.exports.run = async (bot, message, args) => 

    let bal = db.fetch(`money_$message.guild.id_$message.author.id`)

    if (bal === null) bal = 0;

    message.channel.send('You have a balance of `' + bal + '`')


我没有收到任何错误,但命令只是不会执行,我什至搜索了日志以确保绝对没有错误,但没有任何显示。

【问题讨论】:

你有一个 module.exports.help 吗? 不幸的是,如果没有看到您的其余代码,我们很难确定哪里出了问题,我猜您一开始就没有真正运行过您发布的代码。 【参考方案1】:

这对我有用!

let user = message.mentions.members.first() || message.author;
let bal = db.fetch(`money_$message.guild.id_$user.id`)

if (bal === null) bal = 0;

let bank = await db.fetch(`bank_$message.guild.id_$user.id`)  
if (bank === null) bank = 0;

let moneyEmbed = new Discord.MessageEmbed()
    .setColor("RANDOM")  
    .setDescription(`**$user's Balance**\n\n__Pocket:__$bal\n__Bank:__$bank\n__Overall:__ $bank + bal`);  
message.channel.send(moneyEmbed);

【讨论】:

请使用code formatting。【参考方案2】:

我有一个类似的脚本和我的工作,我没有使用

if (bal === null) bal = 0

我的代码是这样的:

let goldAmount = db.get(`money_$message.author.id`)

        let balEmbed = new Discord.RichEmbed()
            .setTitle(`$message.author.username's Gold`)
            .setColor([0,200,20])
            .setDescription(`$goldAmount Gold`)

        await message.channel.send(balEmbed);

您不需要将其作为 RichEmbed 发送,您可以直接发送 await message.channel.send(goldAmount);

【讨论】:

以上是关于尝试使用 quick.db 制作经济型机器人,但我的命令不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何修复该 quick.db 不会产生负面输出

quick.db 调平系统 - database.updateValue 不是函数

Discord.js Quick.db 过滤器

如何安装 quick.db?

我如何循环遍历数据库中的每个公会成员(quick.db)

在 discord.js 中,使用 quick.db 我想为我的机器人的货币系统创建一个卖出命令