From c2e670c5f8dd0f05be7bc5482defd2202ee5bacc Mon Sep 17 00:00:00 2001 From: Oliver-Akins Date: Wed, 21 Oct 2020 21:43:44 -0600 Subject: [PATCH] Update KickPlayer to RemovePlayer --- docs/events.html | 25 ++++++++++++------- src/events/{KickPlayer.ts => RemovePlayer.ts} | 14 +++++------ src/main.ts | 4 +-- src/types/client_data.d.ts | 2 +- src/types/data.d.ts | 2 +- 5 files changed, 27 insertions(+), 20 deletions(-) rename src/events/{KickPlayer.ts => RemovePlayer.ts} (83%) diff --git a/docs/events.html b/docs/events.html index fbe40a0..2c94504 100644 --- a/docs/events.html +++ b/docs/events.html @@ -79,7 +79,8 @@ Fail: Origin - This is just to get the list of players, there's nothing else to it. + This is just to get the list of players, there's nothing + else to it. @@ -123,31 +124,37 @@ Fail: Not Sent - Alerts players already in the game of the newly joined player. + Alerts players already in the game of the newly joined + player. - KickPlayer - PlayerKicked + RemovePlayer + PlayerRemoved Success: Room
Fail: Origin - When the host kicks a player from the lobby this event is sent out to alert all the players of the player's removal so the UI can be updated as needed. + When the host kicks a player from the lobby this event is + sent out to alert all the players of the player's removal + so the UI can be updated as needed. KillGame - + GameKilled - Success: + Success: Room
- Fail: + Fail: Origin + + + This event is sent out to everyone in the room when the host + leaves the game. - NextPresident diff --git a/src/events/KickPlayer.ts b/src/events/RemovePlayer.ts similarity index 83% rename from src/events/KickPlayer.ts rename to src/events/RemovePlayer.ts index 8ca60ad..0752a70 100644 --- a/src/events/KickPlayer.ts +++ b/src/events/RemovePlayer.ts @@ -4,19 +4,19 @@ kicked, as well as can prevent them from re-joining the game again if the ban property was set to true. Emissions: - PlayerKicked->All - This event is sent to everyone to indicate that the + PlayerRemoved->All - This event is sent to everyone to indicate that the player was removed from the game. If the client recognizes the player name to be itself, it kicks the player back to he main page. Otherwise it just removes the player from the display list. */ import { Server, Socket } from 'socket.io'; import { active_games, log } from '../main'; -export const KickPlayer = (io: Server, socket: Socket, data: KickPlayer) => { +export const RemovePlayer = (io: Server, socket: Socket, data: RemovePlayer) => { try { // Check if it's an active game if (active_games[data.game_code] == null) { log.debug(`Can't find an active game with code: ${data.game_code}`); - socket.emit(`PlayerKicked`, { + socket.emit(`PlayerRemoved`, { success: false, message: `Error: The supplied game code could not be found.` }); @@ -28,7 +28,7 @@ export const KickPlayer = (io: Server, socket: Socket, data: KickPlayer) => { // Ensure it's the host kicking the player if (game.host !== data.user && data.user !== data.target) { log.info(`${data.user} attempted to kick ${data.target} from the game`); - socket.emit(`PlayerKicked`, { + socket.emit(`PlayerRemoved`, { success: false, message: `Cannot kick players when you are not the host.`, }); @@ -38,7 +38,7 @@ export const KickPlayer = (io: Server, socket: Socket, data: KickPlayer) => { // Ensure the user can be kicked during the state if (game.status !== `lobby`) { log.warn(`Cannot kick a player from the game when not in the lobby. (state=${game.status})`); - socket.emit(`PlayerKicked`, { + socket.emit(`PlayerRemoved`, { success: false, message: `Cannot kick a player when the game is in progress.`, }); @@ -52,13 +52,13 @@ export const KickPlayer = (io: Server, socket: Socket, data: KickPlayer) => { game.remove_player(data.target, data.ban); log.info(`${data.user} removed ${data.target} from ${data.game_code}`); - io.to(game.code).to(target_socket).emit(`PlayerKicked`, { + io.to(game.code).to(target_socket).emit(`PlayerRemoved`, { success: true, player: data.target, }); } catch (err) { log.prettyError(err); - socket.emit(`PlayerKicked`, { + socket.emit(`PlayerRemoved`, { success: false, message: `${err.name}: ${err.message}`, }); diff --git a/src/main.ts b/src/main.ts index 85f56e4..6f15c38 100644 --- a/src/main.ts +++ b/src/main.ts @@ -7,9 +7,9 @@ import { KillGame } from "./events/KillGame"; import { JoinGame } from "./events/JoinGame"; import { HostGame } from "./events/HostGame"; import { StartGame } from "./events/StartGame"; -import { KickPlayer } from "./events/KickPlayer"; import { VetoConfirm } from "./events/VetoConfirm"; import { VetoRequest } from "./events/VetoRequest"; +import { RemovePlayer } from "./events/RemovePlayer"; import { ExecutePlayer } from "./events/ExecutePlayer"; import { GetPlayerList } from "./events/GetPlayerList"; import { NextPresident } from "./events/NextPresident"; @@ -61,7 +61,7 @@ io.on(`connection`, (socket: sio.Socket) => { socket.on(`HostGame`, (data: HostGame) => HostGame(io, socket, data)); socket.on(`JoinGame`, (data: JoinGame) => JoinGame(io, socket, data)); socket.on(`KillGame`, (data: KillGame) => KillGame(io, socket, data)); - socket.on(`KickPlayer`, (data: KickPlayer) => KickPlayer(io, socket, data)); + socket.on(`RemovePlayer`, (data: RemovePlayer) => RemovePlayer(io, socket, data)); // Join a game diff --git a/src/types/client_data.d.ts b/src/types/client_data.d.ts index 4ff71c8..ed8ff60 100644 --- a/src/types/client_data.d.ts +++ b/src/types/client_data.d.ts @@ -25,7 +25,7 @@ interface PlayerList extends response { players?: string[] } -interface PlayerKicked extends response { +interface PlayerRemoved extends response { // properties depend on `success` being `true` player?: string; } diff --git a/src/types/data.d.ts b/src/types/data.d.ts index db240f0..16880d3 100644 --- a/src/types/data.d.ts +++ b/src/types/data.d.ts @@ -39,7 +39,7 @@ interface JoinGame { username: string; } -interface KickPlayer extends request { +interface RemovePlayer extends request { target: string; ban: boolean; }