diff --git a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/network/LobbyClient.java b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/network/LobbyClient.java index 0e9ae35..82cde9e 100644 --- a/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/network/LobbyClient.java +++ b/src/main/java/ch/unibas/dmi/dbis/cs108/casono/client/network/LobbyClient.java @@ -131,6 +131,29 @@ public class LobbyClient { return new LoginResult(assigned, id); } + /** + * Changes the username for the currently logged-in session. + * + * @param newUsername desired new username + * @return a {@link LoginResult} containing assigned username and id as returned by the server + */ + public LoginResult changeUsername(String newUsername) { + List lines = client.processCommand("CHANGE_USERNAME USERNAME=" + newUsername); + + List params = ClientService.convertToRequestParameters(lines); + + String assigned = newUsername; + String id = null; + for (RequestParameter p : params) { + if ("USERNAME".equalsIgnoreCase(p.key())) { + assigned = p.value(); + } else if ("ID".equalsIgnoreCase(p.key())) { + id = p.value(); + } + } + return new LoginResult(assigned, id); + } + /** * Request the server for the list of available lobbies. *