diff --git a/webclient/src/websocket/events/room/index.ts b/webclient/src/websocket/events/room/index.ts index 0caaf8780..4f9543f19 100644 --- a/webclient/src/websocket/events/room/index.ts +++ b/webclient/src/websocket/events/room/index.ts @@ -4,10 +4,12 @@ import { joinRoom } from './joinRoom'; import { leaveRoom } from './leaveRoom'; import { listGames } from './listGames'; import { roomSay } from './roomSay'; +import { removeMessages } from './removeMessages'; export const RoomEvents: ProtobufEvents = { - '.Event_JoinRoom.ext': joinRoom, '.Event_LeaveRoom.ext': leaveRoom, '.Event_ListGames.ext': listGames, + '.Event_RemoveMessages.ext': removeMessages, '.Event_RoomSay.ext': roomSay, + '.Event_JoinRoom.ext': joinRoom, }; diff --git a/webclient/src/websocket/events/room/interfaces.ts b/webclient/src/websocket/events/room/interfaces.ts index 523e5c5f4..245f44306 100644 --- a/webclient/src/websocket/events/room/interfaces.ts +++ b/webclient/src/websocket/events/room/interfaces.ts @@ -17,3 +17,8 @@ export interface LeaveRoomData { export interface ListGamesData { gameList: Game[]; } + +export interface RemoveMessagesData { + name: string; + amount: number; +} diff --git a/webclient/src/websocket/events/room/removeMessages.ts b/webclient/src/websocket/events/room/removeMessages.ts new file mode 100644 index 000000000..57fa8b1f6 --- /dev/null +++ b/webclient/src/websocket/events/room/removeMessages.ts @@ -0,0 +1,6 @@ +import { RoomPersistence } from '../../persistence'; +import { RemoveMessagesData, RoomEvent } from './interfaces'; + +export function removeMessages({ name, amount }: RemoveMessagesData, { roomEvent: { roomId } }: RoomEvent) { + RoomPersistence.removeMessages(roomId, name, amount); +} diff --git a/webclient/src/websocket/events/session/gameJoined.ts b/webclient/src/websocket/events/session/gameJoined.ts new file mode 100644 index 000000000..20c2843c7 --- /dev/null +++ b/webclient/src/websocket/events/session/gameJoined.ts @@ -0,0 +1,6 @@ +import { SessionPersistence } from '../../persistence'; +import { GameJoinedData } from './interfaces'; + +export function gameJoined(gameJoined: GameJoinedData) { + SessionPersistence.gameJoined(gameJoined); +} diff --git a/webclient/src/websocket/events/session/index.ts b/webclient/src/websocket/events/session/index.ts index f0821303c..400804f59 100644 --- a/webclient/src/websocket/events/session/index.ts +++ b/webclient/src/websocket/events/session/index.ts @@ -11,14 +11,17 @@ import { serverShutdown } from './serverShutdown'; import { userJoined } from './userJoined'; import { userLeft } from './userLeft'; import { userMessage } from './userMessage'; +import { gameJoined } from './gameJoined'; export const SessionEvents: ProtobufEvents = { '.Event_AddToList.ext': addToList, '.Event_ConnectionClosed.ext': connectionClosed, + '.Event_GameJoined.ext': gameJoined, '.Event_ListRooms.ext': listRooms, '.Event_NotifyUser.ext': notifyUser, '.Event_PlayerPropertiesChanges.ext': playerPropertiesChanges, '.Event_RemoveFromList.ext': removeFromList, + // '.Event_ReplayAdded.ext': () => {}, // TODO Eventually '.Event_ServerIdentification.ext': serverIdentification, '.Event_ServerMessage.ext': serverMessage, '.Event_ServerShutdown.ext': serverShutdown, diff --git a/webclient/src/websocket/events/session/interfaces.ts b/webclient/src/websocket/events/session/interfaces.ts index 5d84d6ccf..79a0ca499 100644 --- a/webclient/src/websocket/events/session/interfaces.ts +++ b/webclient/src/websocket/events/session/interfaces.ts @@ -1,4 +1,4 @@ -import { Room, User } from 'types'; +import { Game, Room, User } from 'types'; export interface SessionEvent { sessionEvent: {} @@ -42,3 +42,11 @@ export interface UserJoinedData { export interface UserLeftData { name: string; } + +export interface GameJoinedData { + gameInfo: Game; + playerId: number; + spectator: boolean; + resuming: boolean; + judge: boolean; +} diff --git a/webclient/src/websocket/persistence/RoomPersistence.ts b/webclient/src/websocket/persistence/RoomPersistence.ts index 1ea128660..997ec20b1 100644 --- a/webclient/src/websocket/persistence/RoomPersistence.ts +++ b/webclient/src/websocket/persistence/RoomPersistence.ts @@ -48,4 +48,8 @@ export class RoomPersistence { static userLeft(roomId: number, name: string) { RoomsDispatch.userLeft(roomId, name); } + + static removeMessages(roomId: number, name: string, amount: number): void { + console.log('removeMessages', roomId, name, amount); + }; } diff --git a/webclient/src/websocket/persistence/SessionPersistence.ts b/webclient/src/websocket/persistence/SessionPersistence.ts index 0e1fc18d9..294d630af 100644 --- a/webclient/src/websocket/persistence/SessionPersistence.ts +++ b/webclient/src/websocket/persistence/SessionPersistence.ts @@ -3,6 +3,7 @@ import { Log, StatusEnum, User, WebSocketConnectOptions } from 'types'; import { sanitizeHtml } from 'websocket/utils'; import NormalizeService from '../utils/NormalizeService'; +import { GameJoinedData } from '../events/session/interfaces'; export class SessionPersistence { static initialized() { @@ -168,4 +169,8 @@ export class SessionPersistence { static getGamesOfUser(userName: string, response: any): void { console.log('getGamesOfUser'); } + + static gameJoined(gameJoinedData: GameJoinedData): void { + console.log('gameJoined', gameJoinedData); + } }