public ServerHandler(string databasePath, string attributesPath, DataBase.DataBaseBehaivour dataBaseBehaivour) : base() { DataBaseBehaivour = dataBaseBehaivour; dataBaseBehaivour.Init(databasePath, attributesPath); SynchronizableTypes.AddType(typeof(ValidateServerCall.Refresh), (object data, string id) => { ValidateServerCall.Refresh refresh = data as ValidateServerCall.Refresh; if (refresh.info == null || refresh.info.dataAttributes.Count == 0) { SendMessageViaTCP(new NetData(new ValidateServerCall.Refresh(clients[id].info), false), clients[id]); } else { clients[id].info = refresh.info; } } ); SynchronizableTypes.AddSyncSubType(typeof(DataBase.UserInfo)); SynchronizableTypes.AddSyncSubType(typeof(DataBase.DataProperty)); MatchmakingController.Init(); }
public ClientHandler() : base() { SynchronizableTypes.AddType(typeof(ValidateServerCall.Refresh), (object data, string id) => { OnLogReceived("Refreshed"); var refresh = data as ValidateServerCall.Refresh; onRefreshed?.Invoke(refresh.info); }); SynchronizableTypes.AddType(typeof(MatchmakingServerCall.OnJoinedToRoomCallback), (object data, string id) => { var joined = data as MatchmakingServerCall.OnJoinedToRoomCallback; onJoinedToRoom?.Invoke(joined.ids); }); SynchronizableTypes.AddType(typeof(MatchmakingServerCall.OnMatchReadyCallback), (object data, string id) => { var ready = data as MatchmakingServerCall.OnMatchReadyCallback; onMatchReady.Invoke(ready.userInfos); }); SynchronizableTypes.AddType(typeof(MatchmakingServerCall.OnGetLobbysListCallback), (object data, string id) => { var lobbysGet = data as MatchmakingServerCall.OnGetLobbysListCallback; onGetLobbysList?.Invoke(lobbysGet.lobbys); }); SynchronizableTypes.AddType(typeof(MatchmakingServerCall.OnPlayerLeaveCallback), (object data, string id) => { onUserLeaveRoom?.Invoke(id); }); SynchronizableTypes.AddType(typeof(MatchmakingServerCall.OnRoomRealeasedCallback), (object data, string id) => { onRoomReleased?.Invoke(); }); SynchronizableTypes.AddType(typeof(MatchmakingServerCall.OnLobbyDestoyedCallback), (object data, string id) => { onLobbyDestroyed?.Invoke(); }); SynchronizableTypes.AddSyncSubType(typeof(DataBase.UserInfo)); SynchronizableTypes.AddSyncSubType(typeof(DataBase.DataProperty)); SynchronizableTypes.AddSyncSubType(typeof(MatchmakingServerCall.JoinToMatch)); SynchronizableTypes.AddSyncSubType(typeof(MatchmakingServerCall.GetLobbysList)); SynchronizableTypes.AddSyncSubType(typeof(MatchmakingServerCall.CreateLobby)); SynchronizableTypes.AddSyncSubType(typeof(MatchmakingServerCall.JoinToLobby)); SynchronizableTypes.AddSyncSubType(typeof(MatchmakingServerCall.LeaveFromRoom)); SynchronizableTypes.AddSyncSubType(typeof(MatchmakingServerCall.ReleaseRoom)); SynchronizableTypes.AddSyncSubType(typeof(MatchmakingServerCall.StartLobby)); SynchronizableTypes.AddSyncSubType(typeof(MatchmakingServerCall.DestroyLobby)); }
public static void Init() { defaultRoom = new DefaultRoom("defaultRoomType"); matchmakingRooms.Add("defaultRoomType", new List <Room>(1)); matchmakingRooms["defaultRoomType"].Add(defaultRoom); SynchronizableTypes.AddType(typeof(MatchmakingServerCall.CreateLobby), (object data, string id) => { MatchmakingServerCall.CreateLobby createRoom = data as MatchmakingServerCall.CreateLobby; CreateLobby(ServerHandler.clients[id], createRoom.name, createRoom.roomFactors); } ); SynchronizableTypes.AddType(typeof(MatchmakingServerCall.GetLobbysList), (object data, string id) => { ServerHandler.clients[id].tcpConnection.SendMessage(new NetData(new MatchmakingServerCall.OnGetLobbysListCallback(GetLobbyList()), false)); } ); SynchronizableTypes.AddType(typeof(MatchmakingServerCall.JoinToMatch), (object data, string id) => { MatchmakingServerCall.JoinToMatch joinToMatch = data as MatchmakingServerCall.JoinToMatch; JoinToMatch(ServerHandler.clients[id], joinToMatch.roomFactors); } ); SynchronizableTypes.AddType(typeof(MatchmakingServerCall.JoinToLobby), (object data, string id) => { MatchmakingServerCall.JoinToLobby joinToLobby = data as MatchmakingServerCall.JoinToLobby; if (rooms.ContainsKey(joinToLobby.id)) { rooms[joinToLobby.id].JoinToRoom(ServerHandler.clients[id]); } } ); SynchronizableTypes.AddType(typeof(MatchmakingServerCall.StartLobby), (object data, string id) => { if (ServerHandler.clients[id].currentRoom is Lobby) { ServerHandler.clients[id].currentRoom.StartRoom(); } } ); SynchronizableTypes.AddType(typeof(MatchmakingServerCall.DestroyLobby), (object data, string id) => { if (ServerHandler.clients[id].currentRoom is Lobby) { ServerHandler.clients[id].currentRoom.DestroyRoom(); } } ); SynchronizableTypes.AddType(typeof(MatchmakingServerCall.LeaveFromRoom), (object data, string id) => { ServerHandler.clients[id].currentRoom.LeaveFromRoom(ServerHandler.clients[id]); } ); SynchronizableTypes.AddType(typeof(MatchmakingServerCall.ReleaseRoom), (object data, string id) => { ServerHandler.clients[id].currentRoom.ReleaseRoom(); } ); SynchronizableTypes.AddSyncSubType(typeof(MatchmakingServerCall.OnMatchReadyCallback)); SynchronizableTypes.AddSyncSubType(typeof(MatchmakingServerCall.OnPlayerLeaveCallback)); SynchronizableTypes.AddSyncSubType(typeof(MatchmakingServerCall.OnJoinedToRoomCallback)); SynchronizableTypes.AddSyncSubType(typeof(MatchmakingServerCall.OnGetLobbysListCallback)); SynchronizableTypes.AddSyncSubType(typeof(MatchmakingServerCall.OnRoomRealeasedCallback)); SynchronizableTypes.AddSyncSubType(typeof(MatchmakingServerCall.OnLobbyDestoyedCallback)); }