1
0
forked from noxious/server

32 lines
915 B
TypeScript

import { Server } from 'socket.io'
import { TSocket } from '#utilities/types'
import { Object } from '@prisma/client'
import ObjectRepository from '#repositories/objectRepository'
import characterRepository from '#repositories/characterRepository'
interface IPayload {}
export default class ObjectListEvent {
constructor(
private readonly io: Server,
private readonly socket: TSocket
) {}
public listen(): void {
this.socket.on('gm:object:list', this.handleObjectList.bind(this))
}
private async handleObjectList(data: IPayload, callback: (response: Object[]) => void): Promise<void> {
const character = await characterRepository.getById(this.socket.characterId as number)
if (!character) return callback([])
if (character.role !== 'gm') {
return callback([])
}
// get all objects
const objects = await ObjectRepository.getAll()
callback(objects)
}
}