Added nickname change /n newName

This commit is contained in:
Seraina 2022-03-27 16:41:03 +02:00
parent 15cabe2d18
commit 1c03b5d9c7
3 changed files with 19 additions and 9 deletions

View File

@ -1,6 +1,4 @@
package ch.unibas.dmi.dbis.cs108.multiplayer.server; package ch.unibas.dmi.dbis.cs108.multiplayer.client;
import java.io.StringBufferInputStream;
public class MessageFormatter { public class MessageFormatter {
@ -23,15 +21,17 @@ public class MessageFormatter {
} }
switch (header) { switch (header) {
case "/c": case "/c":
stringBuilder.append("CHATA"); stringBuilder.append("CHATA$");
s = msg.substring(2); s = msg.substring(3);
break; break;
case "/q": case "/q":
stringBuilder.append("QUITS"); stringBuilder.append("QUITS$");
s = msg.substring(2); s = msg.substring(3);
break; break;
case "/n": case "/n":
stringBuilder.append("NAMEC"); stringBuilder.append("NAMEC$");
s = msg.substring(3);
break;
default: default:
s = msg; s = msg;
} }

View File

@ -79,7 +79,7 @@ public class ClientHandler implements Runnable {
* The main logic of the client handler. * The main logic of the client handler.
* Since every client is put on a string this is where * Since every client is put on a string this is where
* most interactions between client and server are held * most interactions between client and server are held
*/ **/
public void run() { public void run() {
String msg; String msg;
while (socket.isConnected()) { while (socket.isConnected()) {
@ -98,6 +98,13 @@ public class ClientHandler implements Runnable {
return clientUserName; return clientUserName;
} }
public void changeUsername(String newName) {
String h = this.clientUserName; //just a friendly little helper
this.clientUserName = newName;
broadcastMessage(h +" have changed their nickname to " + clientUserName);
}
public void broadcastMessage(String msg) { public void broadcastMessage(String msg) {
for (ClientHandler client : connectedClients) { for (ClientHandler client : connectedClients) {
client.sendMsgToClient("CHATM:" + clientUserName + ": \"" + msg + "\""); client.sendMsgToClient("CHATM:" + clientUserName + ": \"" + msg + "\"");

View File

@ -21,6 +21,9 @@ public class JServerProtocolParser {
case "CHATA": case "CHATA":
h.broadcastMessage(msg.substring(6)); h.broadcastMessage(msg.substring(6));
break; break;
case "NAMEC":
h.changeUsername(msg.substring(6));
break;
case "CPING": case "CPING":
h.sendMsgToClient("PINGB"); h.sendMsgToClient("PINGB");
break; break;