Minor improvements for char. type management

This commit is contained in:
Dennis Postma 2024-11-17 18:00:58 +01:00
parent ec3bf0f51e
commit 6ee8bb8334
2 changed files with 7 additions and 19 deletions

View File

@ -7,7 +7,7 @@ import { getPublicPath } from '../../../../utilities/storage'
import { gameMasterLogger } from '../../../../utilities/logger' import { gameMasterLogger } from '../../../../utilities/logger'
interface IPayload { interface IPayload {
object: string id: number
} }
export default class CharacterTypeDeleteEvent { export default class CharacterTypeDeleteEvent {
@ -29,25 +29,13 @@ export default class CharacterTypeDeleteEvent {
} }
try { try {
await prisma.object.delete({ await prisma.characterType.delete({
where: { where: { id: data.id }
id: data.object
}
}) })
// remove the tile from the disk
const finalFilePath = getPublicPath('objects', data.object + '.png')
fs.unlink(finalFilePath, (err) => {
if (err) {
gameMasterLogger.error(`Error deleting object ${data.object}: ${err.message}`)
callback(false)
return
}
callback(true) callback(true)
})
} catch (error) { } catch (error) {
gameMasterLogger.error(`Error deleting object ${data.object}: ${error instanceof Error ? error.message : String(error)}`) gameMasterLogger.error(`Error deleting character type ${data.id}: ${error instanceof Error ? error.message : String(error)}`)
callback(false) callback(false)
} }
} }

View File

@ -21,10 +21,10 @@ export default class GMSpriteDeleteEvent {
} }
public listen(): void { public listen(): void {
this.socket.on('gm:sprite:delete', this.handleSpriteDelete.bind(this)) this.socket.on('gm:sprite:delete', this.handleEvent.bind(this))
} }
private async handleSpriteDelete(data: Payload, callback: (response: boolean) => void): Promise<void> { private async handleEvent(data: Payload, callback: (response: boolean) => void): Promise<void> {
const character = await CharacterRepository.getById(this.socket.characterId!) const character = await CharacterRepository.getById(this.socket.characterId!)
if (character?.role !== 'gm') { if (character?.role !== 'gm') {
return callback(false) return callback(false)