34 lines
1.1 KiB
TypeScript

import { BaseEvent } from '@/application/base/baseEvent'
import { CharacterGender, SocketEvent } from '@/application/enums'
import { CharacterHair } from '@/entities/characterHair'
import SpriteRepository from '@/repositories/spriteRepository'
export default class CharacterHairCreateEvent extends BaseEvent {
public listen(): void {
this.socket.on(SocketEvent.GM_CHARACTERHAIR_CREATE, this.handleEvent.bind(this))
}
private async handleEvent(data: undefined, callback: (response: boolean) => void): Promise<void> {
try {
if (!(await this.isCharacterGM())) return
// Get first sprite
const spriteRepository = new SpriteRepository()
const firstSprite = await spriteRepository.getFirst()
if (!firstSprite) {
this.sendNotificationAndLog('No sprites found')
return callback(false)
}
const newCharacterHair = new CharacterHair()
await newCharacterHair.setName('New hair').setGender(CharacterGender.MALE).setSprite(firstSprite).save()
return callback(true)
} catch (error) {
console.error('Error creating character hair:', error)
return callback(false)
}
}
}