import { Server } from 'socket.io' import { TSocket } from '../../../utilities/Types' import prisma from '../../../utilities/Prisma' interface IPayload { id: string name: string tags: string[] origin_x: number origin_y: number isAnimated: boolean } /** * Handle game master object update event * @param socket * @param io */ export default function (socket: TSocket, io: Server) { socket.on('gm:object:update', async (data: IPayload, callback: (success: boolean) => void) => { if (socket.character?.role !== 'gm') { return } try { const object = await prisma.object.update({ where: { id: data.id }, data: { name: data.name, tags: data.tags, origin_x: data.origin_x, origin_y: data.origin_y, isAnimated: data.isAnimated } }) callback(true) } catch (error) { console.error(error) callback(false) } }) }