Exemplo n.º 1
0
        public void RemoveUserFromLobby(User user, Lobby lobby)
        {
            AddRemoveUserInfo removeUserInfo = new AddRemoveUserInfo();
            removeUserInfo.User = user.Name;
            lock (this.serverLock)
            {
                lobby.Users.Remove(user);
                user.Lobby = null;

                NetworkMessage message = new NetworkMessage();
                message.MessageCategory = SystemMessages.SystemPrefix;
                message.MessageType = SystemMessages.RemoveUser;
                message.MessageContent = NetworkSerializer.Serialize(removeUserInfo);

                foreach (User u in lobby.Users)
                {
                    u.Connection.SendMessage(message);
                }
                UserInfo userInfo = new UserInfo();
                NetworkMessage message2 = new NetworkMessage();
                message2.MessageCategory = SystemMessages.SystemPrefix;
                message2.MessageType = SystemMessages.SendUsers;
                message2.MessageContent = NetworkSerializer.Serialize(userInfo);
                user.Connection.SendMessage(message2);
            }
        }
Exemplo n.º 2
0
        public void AddUserToLobby(User user, Lobby lobby)
        {
            AddRemoveUserInfo addUserInfo = new AddRemoveUserInfo();
            addUserInfo.User = user.Name;

            lock (this.serverLock)
            {
                NetworkMessage message = new NetworkMessage();
                message.MessageCategory = SystemMessages.SystemPrefix;
                message.MessageType = SystemMessages.AddUser;
                message.MessageContent = NetworkSerializer.Serialize(addUserInfo);

                foreach (User u in lobby.Users)
                {
                    u.Connection.SendMessage(message);
                }

                UserInfo userInfo = new UserInfo();
                userInfo.Users.AddRange(lobby.Users.Select(u => u.Name));
                NetworkMessage message2 = new NetworkMessage();
                message2.MessageCategory = SystemMessages.SystemPrefix;
                message2.MessageType = SystemMessages.SendUsers;
                message2.MessageContent = NetworkSerializer.Serialize(userInfo);

                user.Connection.SendMessage(message2);

                lobby.Users.Add(user);
                user.Lobby = lobby;
            }
        }