From 9bdafd502681e3edbd3af95b0761720f5f02f34f Mon Sep 17 00:00:00 2001 From: Dennis Postma Date: Sat, 4 Jan 2025 20:42:32 +0100 Subject: [PATCH] Made printWidth smaller for better readability, removed redundant services --- .prettierrc.json | 2 +- src/application/database.ts | 1 - src/commands/init.ts | 9 ++++- .../assetManager/mapObject/update.ts | 11 +++++- src/events/gameMaster/mapEditor/update.ts | 8 +++- src/managers/dateManager.ts | 3 +- src/managers/weatherManager.ts | 8 +++- src/server.ts | 13 ++++++- src/services/passwordResetTokenService.ts | 26 ------------- src/services/userService.ts | 8 +--- src/services/worldService.ts | 38 ------------------- 11 files changed, 49 insertions(+), 78 deletions(-) delete mode 100644 src/services/passwordResetTokenService.ts delete mode 100644 src/services/worldService.ts diff --git a/.prettierrc.json b/.prettierrc.json index 1103a9f..f3ca5d2 100644 --- a/.prettierrc.json +++ b/.prettierrc.json @@ -3,6 +3,6 @@ "semi": false, "tabWidth": 2, "singleQuote": true, - "printWidth": 300, + "printWidth": 200, "trailingComma": "none" } \ No newline at end of file diff --git a/src/application/database.ts b/src/application/database.ts index 57c7333..bd4709c 100644 --- a/src/application/database.ts +++ b/src/application/database.ts @@ -1,4 +1,3 @@ -import { EntityManager } from '@mikro-orm/core' import { MikroORM } from '@mikro-orm/mysql' import Logger, { LoggerType } from './logger' diff --git a/src/commands/init.ts b/src/commands/init.ts index d6d6791..19a63b9 100644 --- a/src/commands/init.ts +++ b/src/commands/init.ts @@ -152,7 +152,14 @@ export default class InitCommand extends BaseCommand { .save() const characterType = new CharacterType() - await characterType.setId('75b70c78-17f0-44c0-a4fa-15043cb95be0').setName('New character type').setGender(CharacterGender.MALE).setRace(CharacterRace.HUMAN).setIsSelectable(true).setSprite(characterSprite).save() + await characterType + .setId('75b70c78-17f0-44c0-a4fa-15043cb95be0') + .setName('New character type') + .setGender(CharacterGender.MALE) + .setRace(CharacterRace.HUMAN) + .setIsSelectable(true) + .setSprite(characterSprite) + .save() } private async createCharacterHair(): Promise { diff --git a/src/events/gameMaster/assetManager/mapObject/update.ts b/src/events/gameMaster/assetManager/mapObject/update.ts index 9f01dbc..3db32ca 100644 --- a/src/events/gameMaster/assetManager/mapObject/update.ts +++ b/src/events/gameMaster/assetManager/mapObject/update.ts @@ -28,7 +28,16 @@ export default class MapObjectUpdateEvent extends BaseEvent { const mapObject = await mapObjectRepository.getById(data.id) if (!mapObject) return callback(false) - await mapObject.setName(data.name).setTags(data.tags).setOriginX(data.originX).setOriginY(data.originY).setIsAnimated(data.isAnimated).setFrameRate(data.frameRate).setFrameWidth(data.frameWidth).setFrameHeight(data.frameHeight).save() + await mapObject + .setName(data.name) + .setTags(data.tags) + .setOriginX(data.originX) + .setOriginY(data.originY) + .setIsAnimated(data.isAnimated) + .setFrameRate(data.frameRate) + .setFrameWidth(data.frameWidth) + .setFrameHeight(data.frameHeight) + .save() return callback(true) } catch (error) { diff --git a/src/events/gameMaster/mapEditor/update.ts b/src/events/gameMaster/mapEditor/update.ts index 35e5d45..a930fc3 100644 --- a/src/events/gameMaster/mapEditor/update.ts +++ b/src/events/gameMaster/mapEditor/update.ts @@ -96,7 +96,13 @@ export default class MapUpdateEvent extends BaseEvent { // Create and add new map objects for (const object of data.placedMapObjects) { - const mapObject = new PlacedMapObject().setMapObject(object.mapObject).setDepth(object.depth).setIsRotated(object.isRotated).setPositionX(object.positionX).setPositionY(object.positionY).setMap(map) + const mapObject = new PlacedMapObject() + .setMapObject(object.mapObject) + .setDepth(object.depth) + .setIsRotated(object.isRotated) + .setPositionX(object.positionX) + .setPositionY(object.positionY) + .setMap(map) map.placedMapObjects.add(mapObject) } diff --git a/src/managers/dateManager.ts b/src/managers/dateManager.ts index 99acebc..37521ae 100644 --- a/src/managers/dateManager.ts +++ b/src/managers/dateManager.ts @@ -89,7 +89,8 @@ class DateManager { private async saveDate(): Promise { try { - await WorldService.update({ date: this.currentDate }) + const worldRepository = new WorldRepository() + await (await worldRepository.getFirst())?.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 8db1cb9..0b9a1f5 100644 --- a/src/managers/weatherManager.ts +++ b/src/managers/weatherManager.ts @@ -113,7 +113,13 @@ class WeatherManager { private async saveWeather(): Promise { try { - await WorldService.update(this.weatherState) + const worldRepository = new WorldRepository() + await (await worldRepository.getFirst()) + ?.setIsRainEnabled(this.weatherState.isRainEnabled) + .setRainPercentage(this.weatherState.rainPercentage) + .setIsFogEnabled(this.weatherState.isFogEnabled) + .setFogDensity(this.weatherState.fogDensity) + .save() } catch (error) { this.logError('save', error) } diff --git a/src/server.ts b/src/server.ts index 34b83cd..12f635b 100644 --- a/src/server.ts +++ b/src/server.ts @@ -7,11 +7,13 @@ import config from '#application/config' import Database from '#application/database' import Logger, { LoggerType } from '#application/logger' import ConsoleManager from '#managers/consoleManager' +import DateManager from '#managers/dateManager' import HttpManager from '#managers/httpManager' import MapManager from '#managers/mapManager' import QueueManager from '#managers/queueManager' import SocketManager from '#managers/socketManager' import UserManager from '#managers/userManager' +import WeatherManager from '#managers/weatherManager' export class Server { private readonly app: Application @@ -36,7 +38,16 @@ export class Server { this.logger.info(`Server running on port ${config.PORT}`) // Initialize managers - await Promise.all([HttpManager.boot(this.app), SocketManager.boot(this.app, this.http), QueueManager.boot(), UserManager.boot(), MapManager.boot(), ConsoleManager.boot()]) + await Promise.all([ + HttpManager.boot(this.app), + SocketManager.boot(this.app, this.http), + QueueManager.boot(), + UserManager.boot(), + MapManager.boot(), + DateManager.boot(), + WeatherManager.boot(), + ConsoleManager.boot() + ]) } catch (error: any) { this.logger.error(`Server failed to start: ${error.message}`) process.exit(1) diff --git a/src/services/passwordResetTokenService.ts b/src/services/passwordResetTokenService.ts deleted file mode 100644 index 39bbec4..0000000 --- a/src/services/passwordResetTokenService.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { BaseService } from '#application/base/baseService' -import passwordResetTokenRepository from '#repositories/passwordResetTokenRepository' - -class PasswordResetTokenService extends BaseService { - /** - * Delete token - * @param token - */ - public async delete(token: string): Promise { - try { - const tokenData = await passwordResetTokenRepository.getByToken(token) - if (!tokenData) { - return false - } - - await tokenData.delete() - - return true - } catch (error: any) { - this.logger.error(`Error deleting password reset token: ${error instanceof Error ? error.message : String(error)}`) - return false - } - } -} - -export default new PasswordResetTokenService() diff --git a/src/services/userService.ts b/src/services/userService.ts index 39a5021..17783a1 100644 --- a/src/services/userService.ts +++ b/src/services/userService.ts @@ -1,8 +1,6 @@ import bcrypt from 'bcryptjs' import NodeMailer from 'nodemailer' -import PasswordResetTokenService from './passwordResetTokenService' // @TODO: Correctly implement this - import { BaseService } from '#application/base/baseService' import config from '#application/config' import { PasswordResetToken } from '#entities/passwordResetToken' @@ -50,8 +48,7 @@ class UserService extends BaseService { } const newUser = new User() - newUser.setUsername(username).setEmail(email).setPassword(password) - await newUser.save() + await newUser.setUsername(username).setEmail(email).setPassword(password).save() return newUser } catch (error: any) { @@ -81,8 +78,7 @@ class UserService extends BaseService { // Create new token using MikroORM const passwordResetToken = new PasswordResetToken() - passwordResetToken.setUser(user).setToken(token) - await passwordResetToken.save() + await passwordResetToken.setUser(user).setToken(token).save() const transporter = NodeMailer.createTransport({ host: config.SMTP_HOST, diff --git a/src/services/worldService.ts b/src/services/worldService.ts deleted file mode 100644 index 95f7165..0000000 --- a/src/services/worldService.ts +++ /dev/null @@ -1,38 +0,0 @@ -import { BaseService } from '#application/base/baseService' -import { World } from '#entities/world' -import WorldRepository from '#repositories/worldRepository' - -class WorldService extends BaseService { - async update(worldData: Partial): Promise { - try { - let world = await WorldRepository.getFirst() - if (!world) { - world = new World() - } - - world.setDate(worldData.date || new Date()) - - if (worldData.isRainEnabled) { - world.setIsRainEnabled(worldData.isRainEnabled) - } - if (worldData.rainPercentage) { - world.setRainPercentage(worldData.rainPercentage) - } - if (worldData.isFogEnabled) { - world.setIsFogEnabled(worldData.isFogEnabled) - } - if (worldData.fogDensity) { - world.setFogDensity(worldData.fogDensity) - } - - await world.save() - - return true - } catch (error: any) { - this.logger.error(`Failed to update world: ${error instanceof Error ? error.message : String(error)}`) - return false - } - } -} - -export default new WorldService()