Docs: Adding Server Commands for Client Chat to the protocol document manually reverting changes

This commit is contained in:
Mathis Ginkel
2026-04-10 23:25:05 +02:00
parent 97e5a55042
commit 9c09927d09
7 changed files with 109 additions and 36 deletions
@@ -35,12 +35,13 @@ import ch.unibas.dmi.dbis.cs108.casono.server.network.events.EventBus;
import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.response.dispatcher.ResponseDispatcher;
import ch.unibas.dmi.dbis.cs108.casono.server.network.sessions.SessionDisconnectJob;
import ch.unibas.dmi.dbis.cs108.casono.server.network.sessions.SessionManager;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import java.time.Duration;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
/** Application class for starting the server. */
public class ServerApp {
@@ -49,7 +50,7 @@ public class ServerApp {
private static final int USER_CLEANUP_JOB_RECONNECT_THRESHOLD = 10;
private static final int SESSION_DISCONNECT_JOB_DELAY = 0;
private static final int SESSION_DISCONNECT_JOB_PERIOD = 2;
private static final int SESSION_DISCONNECT_JOB_TIMEOUT = 30;
private static final int SESSION_DISCONNECT_JOB_TIMEOUT = 5;
public static void start(String arg) {
int port = Integer.parseInt(arg);
@@ -1,15 +1,12 @@
package ch.unibas.dmi.dbis.cs108.casono.server.app.commands.check_nick;
import ch.unibas.dmi.dbis.cs108.casono.server.domain.user.User;
import ch.unibas.dmi.dbis.cs108.casono.server.domain.user.UserRegistry;
import ch.unibas.dmi.dbis.cs108.casono.server.network.command.execution.CommandHandler;
import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.response.dispatcher.ResponseDispatcher;
import java.util.Optional;
/** Handles {@link CheckUsernameRequest}s to check whether a username is available. */
public class CheckUsernameHandler extends CommandHandler<CheckUsernameRequest> {
private final UserRegistry userRegistry;
/**
* Creates a new handler for checking username availability.
*
@@ -20,7 +17,6 @@ public class CheckUsernameHandler extends CommandHandler<CheckUsernameRequest> {
super(responseDispatcher);
this.userRegistry = userRegistry;
}
/**
* Executes the username availability check for the given request.
*
@@ -40,4 +36,4 @@ public class CheckUsernameHandler extends CommandHandler<CheckUsernameRequest> {
}
responseDispatcher.dispatch(new CheckUsernameResponse(request.getContext(), availability));
}
}
}
@@ -1,9 +1,7 @@
package ch.unibas.dmi.dbis.cs108.casono.server.app.commands.check_nick;
import ch.unibas.dmi.dbis.cs108.casono.server.network.command.parsing.CommandParser;
import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.request.PrimitiveRequest;
import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.request.accessor.RequestParameterAccessor;
import ch.unibas.dmi.dbis.cs108.casono.server.app.commands.check_nick.CheckUsernameRequest;
/** Parses a primitive request into a {@link CheckUsernameRequest}. */
public class CheckUsernameParser implements CommandParser<CheckUsernameRequest> {
/**
@@ -18,4 +16,4 @@ public class CheckUsernameParser implements CommandParser<CheckUsernameRequest>
new RequestParameterAccessor(primitiveRequest.parameters());
return new CheckUsernameRequest(primitiveRequest.context(), accessor.require("USERNAME"));
}
}
}
@@ -1,12 +1,9 @@
package ch.unibas.dmi.dbis.cs108.casono.server.app.commands.check_nick;
import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.request.Request;
import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.request.RequestContext;
/** Request implementation used to check whether a username is available or already taken */
public class CheckUsernameRequest extends Request {
private final String username;
/**
* Constructs a new CheckUsernameRequest with the given context and username to check
*
@@ -18,7 +15,6 @@ public class CheckUsernameRequest extends Request {
super(context);
this.username = username;
}
/**
* Returns the provided username in the request
*
@@ -27,4 +23,4 @@ public class CheckUsernameRequest extends Request {
public String getUsername() {
return username;
}
}
}
@@ -2,8 +2,7 @@ package ch.unibas.dmi.dbis.cs108.casono.server.app.commands.check_nick;
import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.request.RequestContext;
import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.response.SuccessResponse;
import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.response.builder.ResponseBody;
import ch.unibas.dmi.dbis.cs108.casono.server.network.protocol.response.builder.ResponseBodyBuilder;
/** Response indicating the availability status of a username check. */
public class CheckUsernameResponse extends SuccessResponse {
/**
@@ -13,6 +12,6 @@ public class CheckUsernameResponse extends SuccessResponse {
* @param availability the availability status of the requested username
*/
public CheckUsernameResponse(RequestContext context, UsernameAvailability availability) {
super(context, ResponseBody.builder().param("STATUS", availability).build());
super(context, new ResponseBodyBuilder().param("STATUS", availability).build());
}
}
}
@@ -1,16 +0,0 @@
package ch.unibas.dmi.dbis.cs108.casono.server.domain.message;
import ch.unibas.dmi.dbis.cs108.casono.server.domain.user.UserRegistry;
/** NOT USED * */
public class MessageManager {
private final UserRegistry userRegistry;
public MessageManager(UserRegistry userRegistry) {
this.userRegistry = userRegistry;
}
public void broadcast(Message message) {
// userRegistry.getAllUsers().forEach(user -> user.enqueueMessage(message));
}
}