From 6b1e95e800e04ed6aaf8a2ee2dc03ca3c9fce0fc Mon Sep 17 00:00:00 2001 From: Oliver-Akins Date: Mon, 28 Sep 2020 23:07:57 -0600 Subject: [PATCH] Add code to handle socket connections and listen for events --- src/main.ts | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/src/main.ts b/src/main.ts index e69de29..90ab825 100644 --- a/src/main.ts +++ b/src/main.ts @@ -0,0 +1,58 @@ +import * as sio from "socket.io"; +import { Vote } from "./events/Vote"; +import { JoinGame } from "./events/JoinGame"; +import { HostGame } from "./events/HostGame"; +import { StartGame } from "./events/StartGame"; +import { VetoConfirm } from "./events/VetoConfirm"; +import { VetoRequest } from "./events/VetoRequest"; +import { ChancellorPolicy } from "./events/ChancellorPolicy"; +import { PresidentPolicies } from "./events/PresidentPolicies"; +import { ChancellorNomination } from "./events/ChancellorNomination"; +import { ExecutePlayer } from "./events/special/Execution/ExecutePlayer"; +import { NextPresident } from "./events/special/SpecialElection/NextPresident"; +import { ExecutiveConfirmation } from "./events/special/ExecutiveConfirmation"; +import { InvestigateAffiliation } from "./events/special/InvestigateLoyalty/InvestigateAffiliation"; +import { GetPlayerList } from "./events/GetPlayerList"; + + +const io = sio.listen(3000); + +io.on(`connection`, (socket: sio.Socket) => { + console.log(`Client connected`); + + // Game Management + socket.on(`HostGame`, (data: HostGame) => HostGame(socket, data)); + socket.on(`JoinGame`, (data: JoinGame) => JoinGame(socket, data)); + + + // Join a game + socket.on(`StartGame`, (data: any) => StartGame(socket, data)); + + // Chancellor Nominations + socket.on(`ChancellorNomination`, (data: any) => ChancellorNomination(socket, data)); + socket.on(`Vote`, Vote); + + // Policy Receiving + socket.on(`PresidentPolicies`, (data: any) => PresidentPolicies(socket, data)); + socket.on(`ChancellorPolicy`, (data: any) => ChancellorPolicy(socket, data)); + socket.on(`VetoRequest`, (data: any) => VetoRequest(socket, data)); + socket.on(`VetoConfirm`, (data: any) => VetoConfirm(socket, data)); + + // Special Actions + socket.on(`ExecutePlayer`, (data: any) => ExecutePlayer(socket, data)); + socket.on(`NextPresident`, (data: any) => NextPresident(socket, data)); + socket.on(`ExecutiveConfirmation`, (data: any) => ExecutiveConfirmation(socket, data)); + socket.on(`InvestigateAffiliation`, (data: any) => InvestigateAffiliation(socket, data)); + + + // Utility Events + socket.on(`GetPlayerList`, (data: GetPlayerList) => GetPlayerList(socket, data)); +}); + +io.on(`reconnect_attempt`, (socket: sio.Socket) => { + console.log(`Client attempting to reconnect`) +}); + +io.on(`disconnect`, (socket: sio.Socket) => { + console.log(`Client disconnected`) +}); \ No newline at end of file