Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        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));
        }