Merge branch 'master' into feature/handleChatData
This commit is contained in:
@@ -170,6 +170,12 @@ namespace Server.Models
|
||||
sendMessage(JSONConvert.ConstructLobbyJoinSuccessMessage());
|
||||
ServerCommunication.INSTANCE.sendToAll(JSONConvert.ConstructLobbyListMessage(ServerCommunication.INSTANCE.lobbies.ToArray()));
|
||||
break;
|
||||
case LobbyIdentifier.LEAVE:
|
||||
id = JSONConvert.GetLobbyID(payload);
|
||||
ServerCommunication.INSTANCE.LeaveLobby(User, id);
|
||||
sendMessage(JSONConvert.ConstructLobbyLeaveMessage(id));
|
||||
ServerCommunication.INSTANCE.sendToAll(JSONConvert.ConstructLobbyListMessage(ServerCommunication.INSTANCE.lobbies.ToArray()));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -161,6 +161,7 @@ namespace Server.Models
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public int HostForLobby(User user)
|
||||
{
|
||||
Lobby lobby = new Lobby( lobbies.Count + 1,0, 8);
|
||||
@@ -183,5 +184,40 @@ namespace Server.Models
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public void LeaveLobby(User user, int id)
|
||||
{
|
||||
Debug.WriteLine("[SERVERCOMM] removing user from lobby");
|
||||
foreach (Lobby l in lobbies)
|
||||
{
|
||||
if (l.ID == id)
|
||||
{
|
||||
Debug.WriteLine($"[SERVERCOMM] checking for lobby with id {l.ID}");
|
||||
|
||||
foreach (User u in l.Users)
|
||||
{
|
||||
Debug.WriteLine($"[SERVERCOMM] checking if {u.Username} is {user.Username} ");
|
||||
// contains doesn't work, so we'll do it like this...
|
||||
if (u.Username == user.Username)
|
||||
{
|
||||
Debug.WriteLine("[SERVERCOMM] removed user from lobby!");
|
||||
l.Users.Remove(user);
|
||||
foreach (ServerClient sc in serverClients)
|
||||
{
|
||||
if (sc.User.Username == user.Username)
|
||||
{
|
||||
serverClientsInlobbies[l].Remove(sc);
|
||||
break;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user