From f2d0e87e26d47ca993fb5c276b713a65d10f8930 Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Sat, 4 Jan 2025 20:46:55 +0100 Subject: [PATCH] Date & weather manager fixes --- src/managers/dateManager.ts | 8 ++++++-- src/managers/weatherManager.ts | 10 +++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/managers/dateManager.ts b/src/managers/dateManager.ts index 37521ae..4251aa8 100644 --- a/src/managers/dateManager.ts +++ b/src/managers/dateManager.ts @@ -1,9 +1,9 @@ import { Server } from 'socket.io' import Logger, { LoggerType } from '#application/logger' +import { World } from '#entities/world' import SocketManager from '#managers/socketManager' import WorldRepository from '#repositories/worldRepository' -import WorldService from '#services/worldService' class DateManager { private static readonly CONFIG = { @@ -90,7 +90,11 @@ class DateManager { private async saveDate(): Promise { try { const worldRepository = new WorldRepository() - await (await worldRepository.getFirst())?.setDate(this.currentDate).save() + + let world = await worldRepository.getFirst() + if (!world) world = new World() + + await world.setDate(this.currentDate).save() } catch (error) { this.handleError('Failed to save date', error) } diff --git a/src/managers/weatherManager.ts b/src/managers/weatherManager.ts index 0b9a1f5..c6bb63f 100644 --- a/src/managers/weatherManager.ts +++ b/src/managers/weatherManager.ts @@ -1,9 +1,9 @@ import { Server } from 'socket.io' import Logger, { LoggerType } from '#application/logger' +import { World } from '#entities/world' import SocketManager from '#managers/socketManager' import WorldRepository from '#repositories/worldRepository' -import WorldService from '#services/worldService' type WeatherState = { isRainEnabled: boolean @@ -114,8 +114,12 @@ class WeatherManager { private async saveWeather(): Promise { try { const worldRepository = new WorldRepository() - await (await worldRepository.getFirst()) - ?.setIsRainEnabled(this.weatherState.isRainEnabled) + + let world = await worldRepository.getFirst() + if (!world) world = new World() + + await world + .setIsRainEnabled(this.weatherState.isRainEnabled) .setRainPercentage(this.weatherState.rainPercentage) .setIsFogEnabled(this.weatherState.isFogEnabled) .setFogDensity(this.weatherState.fogDensity)