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 16 additions and 6 deletions
Showing only changes of commit 3807059229 - Show all commits
@@ -17,10 +17,13 @@ public final class Main {
printUsage();
System.exit(1);
}
switch (args[0]) {
case "server" -> ServerApp.start(args[1]);
case "client" -> ClientApp.start(args[1]);
case "client" -> {
String address = args[1];
String username = args.length >= 3 ? args[2] : null;
ClientApp.start(address, username);
}
default -> {
printUsage();
System.exit(1);
@@ -29,12 +32,13 @@ public final class Main {
}
private static boolean isValid(String[] args) {
if (args.length != 2) {
if (args.length < 2) {
return false;
}
return switch (args[0]) {
case "server", "client" -> true;
case "server" -> args.length == 2;
case "client" -> args.length == 2 || args.length == 3;
default -> false;
};
}
@@ -45,7 +49,7 @@ public final class Main {
"""
Usage:
java -jar xyz.jar server <listenPort>
java -jar xyz.jar client <serverIp>:<serverPort>
java -jar xyz.jar client <serverIp>:<serverPort> [<username>]
""");
}
}
@@ -27,7 +27,7 @@ public class ClientApp {
* @param arg Address in the format "ip:port".
* @throws IllegalArgumentException if the address format is invalid.
*/
public static void start(String arg) {
public static void start(String arg, String username) {
String[] parts = arg.split(":", 2);
if (parts.length != 2) {
throw new IllegalArgumentException("Address must be in format <ip>:<port>.");
@@ -36,6 +36,12 @@ public class ClientApp {
int port = Integer.parseInt(parts[1]);
LOGGER.info("You've selected the client. It will connect port {} at host {}", port, host);
// Pass connection defaults and optional username to the UI via system properties
System.setProperty("casono.server.host", host);
System.setProperty("casono.server.port", String.valueOf(port));
if (username != null && !username.isBlank()) {
System.setProperty("casono.username", username);
}
Launcher.main(new String[] {});
}
}