如何使 Discord 机器人货币系统中的物品可用?

问题描述

我最近一直在尝试使用 Sequelize 在 Discord bot 货币系统中编写代码,但是我编写的使项目可用于服务器的代码似乎不起作用。 我最想要它,以便如果我输入 d!use 服务器成员可以使用该项目。 这是我写的一些代码:

UserItems.belongsTo(CurrencyShop,{ foreignKey: 'item_id',as: 'item' });
const userItem = await UserItems.findOne({
where: { user_id: this.user_id,item_id: item.id },});
if (!userItem) {
    return message.channel.send("You don't own this item!");
} else {
    return message.channel.send(`You used ${item}`);
    await user.removeItem(item);
}

非常感谢!

解决方法

如果 removeItem() 方法的类型正确,这里唯一的问题是您在使用 message.channel.send 方法之前返回了 removeItem(),这会导致在删除之前生成 if-else 语句数据库中的项目。

尝试将 if-else 语句更改为:

if (!userItem) {
    return message.channel.send("You don't own this item!");
} else {
    message.channel.send(`You used ${item}`);
    return await user.removeItem(item);
}

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...