added name validation

This commit is contained in:
2022-01-13 16:04:35 +01:00
parent 48371e2167
commit e702fa5a13
8 changed files with 35 additions and 11 deletions

View File

@@ -22,8 +22,11 @@ public final class AwaitingJoinSession extends Awaiting {
case NackMessage.GAME_ALREADY_STARTED -> client.println("Error: Game has already started.");
case NackMessage.SESSION_FULL -> client.println("Error: The session is full.");
case NackMessage.SESSION_NOT_FOUND -> client.println("Error: Session not found.");
case NackMessage.NAME_TAKEN -> client.println("Error: Name already taken.");
default -> { return super.onMessage(client, message); }
case NackMessage.PLAYER_NAME_TAKEN -> client.println("Player name already taken.");
case NackMessage.PLAYER_NAME_NOT_ALLOWED -> client.println("Player name not allowed.");
case NackMessage.SESSION_NAME_TAKEN -> client.println("Session name already taken.");
case NackMessage.SESSION_NAME_NOT_ALLOWED -> client.println("Session name not allowed.");
default -> client.println("Nack " + nack.getCode() + ": " + nack.getMessage());
}
return Optional.of(new AwaitingJoinLobby());
} else if (message instanceof SessionModifiedMessage || message instanceof SessionRemovedMessage) {

View File

@@ -60,6 +60,7 @@ public class CreateGameScreen extends MenuScreen {
sessionName = new TextField("", skin);
sessionName.setPosition(WizardGame.WIDTH * 0.3f, WizardGame.HEIGHT * 0.5f);
sessionName.setSize(0.4f * WizardGame.WIDTH, 64);
sessionName.setMaxLength(20);
sessionName.addListener(errorListener);
sessionName.setProgrammaticChangeEvents(true);

View File

@@ -120,6 +120,7 @@ public class LobbyScreen extends MenuScreen {
game.storage.playerName = playerName.getText();
}
});
playerName.setMaxLength(20);
playerName.addListener(new ResetErrorListener(skin));
labelSessionName = new Label("", skin, "textfield");

View File

@@ -57,8 +57,11 @@ public final class AwaitingJoinSession extends Awaiting {
case NackMessage.GAME_ALREADY_STARTED -> log.error("Game has already started.");
case NackMessage.SESSION_FULL -> log.error("The session is full.");
case NackMessage.SESSION_NOT_FOUND -> log.error("Session not found.");
case NackMessage.NAME_TAKEN -> log.error("Name already taken.");
default -> { return super.onMessage(client, message); }
case NackMessage.PLAYER_NAME_TAKEN -> log.error("Player name already taken.");
case NackMessage.PLAYER_NAME_NOT_ALLOWED -> log.error("Player name not allowed.");
case NackMessage.SESSION_NAME_TAKEN -> log.error("Session name already taken.");
case NackMessage.SESSION_NAME_NOT_ALLOWED -> log.error("Session name not allowed.");
default -> log.error("Nack {}: {}", nack.getCode(), nack.getMessage());
}
return Optional.of(new AwaitingJoinLobby());
} else if (message instanceof SessionModifiedMessage || message instanceof SessionRemovedMessage) {