1
0
forked from noxious/server
Files
noxious_server/src/events/gameMaster/assetManager/item/create.ts
2025-02-12 00:50:51 +01:00

29 lines
1.0 KiB
TypeScript

import { BaseEvent } from '@/application/base/baseEvent'
import { ItemRarity, ItemType, SocketEvent } from '@/application/enums'
import { Item } from '@/entities/item'
import SpriteRepository from '@/repositories/spriteRepository'
export default class ItemCreateEvent extends BaseEvent {
public listen(): void {
this.socket.on(SocketEvent.GM_ITEM_CREATE, this.handleEvent.bind(this))
}
private async handleEvent(data: undefined, callback: (response: boolean, item?: any) => void): Promise<void> {
try {
if (!(await this.isCharacterGM())) return
const spriteRepository = new SpriteRepository()
const sprite = await spriteRepository.getFirst()
if (!sprite) return callback(false)
const newItem = new Item()
await newItem.setName('New Item').setItemType(ItemType.WEAPON).setStackable(false).setRarity(ItemRarity.COMMON).setSprite(sprite).save()
return callback(true, newItem)
} catch (error) {
console.error('Error creating item:', error)
return callback(false)
}
}
}