diff --git a/src/events/gameMaster/assetManager/item/create.ts b/src/events/gameMaster/assetManager/item/create.ts index 325ed7a..11ca3b0 100644 --- a/src/events/gameMaster/assetManager/item/create.ts +++ b/src/events/gameMaster/assetManager/item/create.ts @@ -1,14 +1,7 @@ -import { Server } from 'socket.io' +import { BaseEvent } from '#application/base/baseEvent' +import { Item } from '#entities/item' -import prisma from '#application/prisma' -import { TSocket } from '#application/types' -import characterRepository from '#repositories/characterRepository' - -export default class ItemCreateEvent { - constructor( - private readonly io: Server, - private readonly socket: TSocket - ) {} +export default class ItemCreateEvent extends BaseEvent { public listen(): void { this.socket.on('gm:item:create', this.handleEvent.bind(this)) @@ -16,27 +9,15 @@ export default class ItemCreateEvent { private async handleEvent(data: undefined, callback: (response: boolean, item?: any) => void): Promise { try { - const character = await characterRepository.getById(this.socket.characterId as number) - if (!character) return callback(false) + if (!(await this.isCharacterGM())) return - if (character.role !== 'gm') { - return callback(false) - } + const newItem = new Item() + await newItem.setName('New Item').setItemType('WEAPON').setStackable(false).setRarity('COMMON').setSprite(null).save() - const newItem = await prisma.item.create({ - data: { - name: 'New Item', - itemType: 'WEAPON', - stackable: false, - rarity: 'COMMON', - spriteId: null - } - }) - - callback(true, newItem) + return callback(true, newItem) } catch (error) { console.error('Error creating item:', error) - callback(false) + return callback(false) } } }