cli for Client

This commit is contained in:
Clément
2025-02-28 12:22:16 +01:00
parent db9b41b190
commit 0b4caa6eaf
4 changed files with 54 additions and 7 deletions

View File

@@ -11,11 +11,12 @@ public class ChatApp {
client.SendCreateRoom("Room1"); client.SendCreateRoom("Room1");
client.RequestRoomList(); client.RequestRoomList();
client.SendChatMessage("Hello");
Scanner scanner = new Scanner(System.in);
while (true) { while (true) {
Scanner scan = new Scanner(System.in); String message = scanner.nextLine();
String message = scan.nextLine(); client.visitMessage(message);
client.SendChatMessage(message);
} }
} }
} }

View File

@@ -4,6 +4,8 @@ import java.io.IOException;
import java.net.DatagramSocket; import java.net.DatagramSocket;
import java.net.InetSocketAddress; import java.net.InetSocketAddress;
import java.net.SocketException; import java.net.SocketException;
import java.util.Objects;
import java.util.Scanner;
import network.protocol.packets.*; import network.protocol.packets.*;
@@ -14,7 +16,11 @@ public class Client {
public static void main(String[] args) { public static void main(String[] args) {
try { try {
Client client = new Client(new InetSocketAddress("localhost", 6665)); Client client = new Client(new InetSocketAddress("localhost", 6665));
client.SendChatMessage("Hello"); Scanner scanner = new Scanner(System.in);
while(true) {
String message = scanner.nextLine();
client.visitMessage(message);
}
} catch (SocketException e) { } catch (SocketException e) {
e.printStackTrace(); e.printStackTrace();
} }
@@ -25,6 +31,30 @@ public class Client {
login("Moi"); login("Moi");
} }
public void visitMessage(String message){
try {
if(message.startsWith("/")){
if(message.startsWith("/createRoom")) {
String roomName = message.substring(12).trim();
SendCreateRoom(roomName);
} else if(message.startsWith("/listRooms")) {
RequestRoomList();
} else if(message.startsWith("/joinRoom")) {
String roomName = message.substring(10).trim();
SendJoinRoom(roomName);
} else if(message.startsWith("/leaveRoom")) {
SendLeaveRoom();
} else {
System.out.println("Unknown command");
}
} else {
SendChatMessage(message);
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void login(String pseudo) { private void login(String pseudo) {
try { try {
this.connexion.sendPacket(new LoginPacket(pseudo)); this.connexion.sendPacket(new LoginPacket(pseudo));
@@ -49,6 +79,22 @@ public class Client {
} }
} }
public void SendJoinRoom(String roomName) {
try {
this.connexion.sendPacket(new JoinRoomPacket(roomName));
} catch (Exception e) {
e.printStackTrace();
}
}
public void SendLeaveRoom() {
try {
this.connexion.sendPacket(new LeaveRoomPacket());
} catch (Exception e) {
e.printStackTrace();
}
}
public void RequestRoomList() { public void RequestRoomList() {
try { try {
this.connexion.sendPacket(new RequestRoomListPacket()); this.connexion.sendPacket(new RequestRoomListPacket());

View File

@@ -9,7 +9,7 @@ public class ServerResponsePacket extends Packet {
static private final long serialVersionUID = Packets.Login.ordinal(); static private final long serialVersionUID = Packets.Login.ordinal();
public static enum Response { public static enum Response {
AuthSuccess, AuthError, RoomCreated, RoomNotCreated, RoomJoined, RoomNotJoined, NotInRoom, RoomLeft, RoomNotLeft, messageSent, messageNotSent; AuthSuccess, AuthError, RoomCreated, RoomNotCreated, RoomJoined, RoomNotJoined, NotInRoom, RoomLeft, RoomNotLeft, MessageSent, MessageNotSent;
}; };
private final Response response; private final Response response;

View File

@@ -107,9 +107,9 @@ public class ServerConnexion implements PacketVisitor {
public void visitPacket(SendChatMessagePacket packet) { public void visitPacket(SendChatMessagePacket packet) {
try { try {
server.sendToRoom(this, packet); server.sendToRoom(this, packet);
sendPacket(new ServerResponsePacket(Response.messageSent)); sendPacket(new ServerResponsePacket(Response.MessageSent));
} catch (SocketException e) { } catch (SocketException e) {
sendPacket(new ServerResponsePacket(Response.messageNotSent)); sendPacket(new ServerResponsePacket(Response.MessageNotSent));
} }
} }