I added a new class, but it throws an error when I run in dev mode:
TypeError: Cannot read properties of undefined (reading 'id')
- server.ts:124 RpgServerEngine._init
[my-first-mmorpg]/[@rpgjs]/server/src/server.ts:124:45
- task_queues:95 processTicksAndRejections
node:internal/process/task_queues:95:5
- server.ts:228 RpgServerEngine.start
[my-first-mmorpg]/[@rpgjs]/server/src/server.ts:228:9
How can I debug this and understand better what is happening?
My class is:
import { RpgPlayer } from '@rpgjs/server'
import { Class } from '@rpgjs/database'
import type { ClassOnSet, ClassCanEquip, WeaponInstance, ArmorInstance } from '@rpgjs/database'
import { DatabaseEnum } from '../../enums/database';
import { SpritesheetEnum } from '../../enums/spritesheet';
@Class({
id: DatabaseEnum.Knight,
name: "Knight",
description: 'A great Knight!',
})
export class Knight implements ClassOnSet, ClassCanEquip {
// Called when the class is assigned to the player
onSet(player: RpgPlayer): void {
console.log(`Player ${player.id} is a Knight`)
player.setGraphic(SpritesheetEnum.PlayerWithSword);
}
// Return true if the player can equip the item
canEquip(item: WeaponInstance | ArmorInstance, player: RpgPlayer): boolean {
if (item.id === DatabaseEnum.Sword) {
return true;
}
return false;
}
}