import { Server } from 'socket.io' import { TSocket } from '#application/types' import { gameLogger } from '#application/logger' import WeatherManager from '#managers/weatherManager' export default class Weather { constructor( private readonly io: Server, private readonly socket: TSocket ) {} public listen(): void { this.socket.on('weather', this.handleEvent.bind(this)) } private async handleEvent(): Promise { try { const weather = await WeatherManager.getWeatherState() this.socket.emit('weather', weather) } catch (error: any) { gameLogger.error('error', error.message) } } }