Feat: accept optional client username and forward to ClientApp #271

Merged
jona.walpert merged 15 commits from feat/change-username-at-start-or-in-game into main 2026-04-12 11:17:39 +02:00
2 changed files with 14 additions and 9 deletions
Showing only changes of commit 8998152e8d - Show all commits
@@ -7,6 +7,12 @@ import org.apache.logging.log4j.Logger;
/** Main entry point for Casono application. Handles client and server startup. */ /** Main entry point for Casono application. Handles client and server startup. */
public final class Main { public final class Main {
private static final int MIN_ARGS_FOR_USERNAME = 3;
private static final int ARGS_COUNT_SERVER = 2;
private static final int ARGS_COUNT_CLIENT_MIN = 2;
private static final int ARGS_COUNT_CLIENT_WITH_USER = 3;
/** /**
* Main entry point for Casono. * Main entry point for Casono.
* *
@@ -21,7 +27,7 @@ public final class Main {
case "server" -> ServerApp.start(args[1]); case "server" -> ServerApp.start(args[1]);
case "client" -> { case "client" -> {
String address = args[1]; String address = args[1];
String username = args.length >= 3 ? args[2] : null; String username = args.length >= MIN_ARGS_FOR_USERNAME ? args[2] : null;
ClientApp.start(address, username); ClientApp.start(address, username);
} }
default -> { default -> {
@@ -32,13 +38,15 @@ public final class Main {
} }
private static boolean isValid(String[] args) { private static boolean isValid(String[] args) {
if (args.length < 2) { if (args.length < ARGS_COUNT_SERVER) {
return false; return false;
} }
return switch (args[0]) { return switch (args[0]) {
case "server" -> args.length == 2; case "server" -> args.length == ARGS_COUNT_SERVER;
case "client" -> args.length == 2 || args.length == 3; case "client" ->
args.length == ARGS_COUNT_CLIENT_MIN
|| args.length == ARGS_COUNT_CLIENT_WITH_USER;
default -> false; default -> false;
}; };
} }
@@ -1,14 +1,11 @@
package ch.unibas.dmi.dbis.cs108.casono.server.domain.user; package ch.unibas.dmi.dbis.cs108.casono.server.domain.user;
import ch.unibas.dmi.dbis.cs108.casono.server.network.sessions.SessionId;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
import ch.unibas.dmi.dbis.cs108.casono.server.network.sessions.SessionId;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
/** /** Tests for {@link UserFactory} and {@link UserRegistry} name assignment behavior. */
* Tests for {@link UserFactory} and {@link UserRegistry} name assignment
* behavior.
*/
public class UserFactoryTest { public class UserFactoryTest {
// Logger removed as per patch requirement // Logger removed as per patch requirement