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); } }
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; } }