From 76207e3bc32964be10e5f32959b2eb48b57b3227 Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Sun, 7 Jul 2024 12:29:38 +0200 Subject: [PATCH] Zone loading stuffs --- .../events/gm/zone/GmZoneEditorZoneList.ts | 5 ++--- .../events/gm/zone/GmZoneEditorZoneRequest.ts | 22 ++++++++++--------- src/app/repositories/ZoneRepository.ts | 3 +++ 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/app/events/gm/zone/GmZoneEditorZoneList.ts b/src/app/events/gm/zone/GmZoneEditorZoneList.ts index e88c5c7..4911474 100644 --- a/src/app/events/gm/zone/GmZoneEditorZoneList.ts +++ b/src/app/events/gm/zone/GmZoneEditorZoneList.ts @@ -3,8 +3,7 @@ import {TSocket} from '../../../utilities/Types' import { Zone } from '@prisma/client' import ZoneRepository from '../../../repositories/ZoneRepository' -interface IPayload { -} +interface IPayload {} /** * Handle game master list zones event @@ -12,7 +11,7 @@ interface IPayload { * @param io */ export default function (socket: TSocket, io: Server) { - socket.on('gm:zone_editor:zone:list', async (data: any, callback: (response: Zone[]) => void) => { + socket.on('gm:zone_editor:zone:list', async (data: IPayload, callback: (response: Zone[]) => void) => { if (socket.character?.role !== 'gm') { console.log(`---Character #${socket.character?.id} is not a game master.`); diff --git a/src/app/events/gm/zone/GmZoneEditorZoneRequest.ts b/src/app/events/gm/zone/GmZoneEditorZoneRequest.ts index bd3eb16..f797095 100644 --- a/src/app/events/gm/zone/GmZoneEditorZoneRequest.ts +++ b/src/app/events/gm/zone/GmZoneEditorZoneRequest.ts @@ -1,8 +1,7 @@ import { Server } from "socket.io"; import {TSocket} from "../../../utilities/Types"; import ZoneRepository from "../../../repositories/ZoneRepository"; -import ZoneManager from "../../../ZoneManager"; -import {Character, Zone} from "@prisma/client"; +import {Zone} from "@prisma/client"; interface IPayload { zoneId: number; @@ -14,7 +13,7 @@ interface IPayload { * @param io */ export default function (socket: TSocket, io: Server) { - socket.on('gm:zone_editor:zone:request', async (data: IPayload) => { + socket.on('gm:zone_editor:zone:request', async (data: IPayload, callback: (response: Zone) => void) => { if (socket.character?.role !== 'gm') { return; @@ -27,14 +26,17 @@ export default function (socket: TSocket, io: Server) { return; } - const zone = await ZoneRepository.getById(data.zoneId); + try { + const zone = await ZoneRepository.getById(data.zoneId); - if (!zone) { - console.log(`---Zone not found.`); - return; + if (!zone) { + console.log(`---Zone not found.`); + return; + } + + callback(zone); + } catch (e) { + console.error(e); } - - // send over zone to game master - socket.emit('gm:zone_editor:zone:load', zone); }); } \ No newline at end of file diff --git a/src/app/repositories/ZoneRepository.ts b/src/app/repositories/ZoneRepository.ts index 6e9d1bd..f3bc4ad 100644 --- a/src/app/repositories/ZoneRepository.ts +++ b/src/app/repositories/ZoneRepository.ts @@ -25,6 +25,9 @@ class ZoneRepository { return await prisma.zone.findUnique({ where: { id: id + }, + include: { + zoneObjects: true } }); } catch (error: any) {