【发布时间】:2022-02-06 20:30:28
【问题描述】:
我正在尝试制作一个 RPG Discord Bot,您可以在其中升级技能、出售物品等。 最近,我的一个朋友重构了所有代码。一切正常,除了启动命令:
在重构之前,它会正确保存所有内容。
之后,它没有为任何技能保存maxLevel属性,而是开始保存ObjectID属性。
Skills/start.js
await new client.database.user({
userID: interaction.user.id,
inventory: [],
coins: 250,
skills: [
{
name: 'Strength',
level: 1,
exp: 0,
maxLevel: 50,
},
{
name: 'Agility',
level: 1,
exp: 0,
maxLevel: 50,
},
{
name: 'Knowledge',
level: 1,
exp: 0,
maxLevel: 50,
},
{
name: 'Trading',
level: 1,
exp: 0,
maxLevel: 50,
},
{
name: 'Challenge',
level: 1,
exp: 0,
maxLevel: 5,
},
{
name: 'Hunting',
level: 1,
exp: 0,
maxLevel: 50,
}
],
mobsKilled: 0,
bossesKilled: 0,
created: moment().format('DD/MM/YYYY'),
heavenDifficulty: Math.floor(Math.random() * 9 + 1),
}).save();
Schemas/User.js
import mongoose from 'mongoose';
const userSchema = mongoose.Schema({
userID: String,
guild: {
guildID: String,
guildName: String,
position: String
},
inventory: [{ name: String, amount: Number }],
coins: Number,
skills: [{ name: String, level: Number, exp: Number }],
mobsKilled: Number,
bossesKilled: Number,
created: String,
heavenDifficulty: Number,
isPremium: Boolean,
premium: {
since: String,
sinceTS: String, //TS = Timestamp
tier: String
}
});
const UserSchema = mongoose.model('users', userSchema);
另外,我知道premium 属性是空的。这是因为我想在某人成为高级会员时将它们添加到数据库中,而不是在他们开始旅程时。
编辑:这是它返回的内容(所有 undefined 属性应该是 maxLevel 属性)
:
【问题讨论】:
标签: javascript mongoose discord.js