Make it so that the events actually register properly

This commit is contained in:
Oliver Akins 2022-03-12 22:10:54 -06:00
parent 1e65515009
commit 2ee16b2b8a
No known key found for this signature in database
GPG key ID: 3C2014AF9457AF99

View file

@ -1,45 +1,25 @@
import { WebsocketEvent } from "./types/WebsocketEvent";
import { log, config } from "./main"; import { log, config } from "./main";
import { Server } from "socket.io"; import { Server } from "socket.io";
import { Status } from "common";
import glob from "glob"; // Event imports
import path from "path"; import Ping from "./events/ping";
import ServerInfo from "./events/server_info";
import CreateLobby from "./events/lobby/create";
export default async function() { export default async function() {
log.info("Starting socket.io server..."); log.info("Starting socket.io server...");
let events: WebsocketEvent[] = [];
let eventFiles = glob.sync(
"events/**/!(*.map)",
{ cwd: __dirname, nodir: true }
);
for (var eventFile of eventFiles) {
let event = (await import(path.join(__dirname, eventFile))).default;
log.info(`Identified event "${event.name}" from: ${eventFile}`);
events.push(event);
};
const io = new Server(); const io = new Server();
io.on("connection", (socket) => { io.on("connection", (socket) => {
log.debug(`Socket connected with ID: ${socket.id}`); log.debug(`Socket connected with ID: ${socket.id}`);
for (var event of events) { // Metadata Events
socket.on( socket.on(Ping.name, (data) => Ping.handler(io, socket, data));
event.name, socket.on(ServerInfo.name, (data) => ServerInfo.handler(io, socket, data));
(data: any) => {
try { // Lobby Management Events
event.handler(io, socket, data) socket.on(CreateLobby.name, (data) => CreateLobby.handler(io, socket, data));
} catch (e) {
log.error(e);
socket.emit("res:error", {
status: Status.UnknownError,
message: "An unexpected error occured."
});
};
}
);
};
}); });
io.listen(config.server.port, { io.listen(config.server.port, {