uggly reliable
This commit is contained in:
@@ -36,8 +36,18 @@ public class ServerConnexion implements PacketVisitor {
|
||||
}
|
||||
}
|
||||
|
||||
private boolean checkLogin() {
|
||||
if (this.chatterName.isEmpty()) {
|
||||
sendPacket(new ServerResponsePacket(Response.AuthError));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitPacket(CreateRoomPacket packet) {
|
||||
if (!checkLogin())
|
||||
return;
|
||||
boolean created = server.createRoom(packet.getRoomName(), this);
|
||||
sendPacket(new ServerResponsePacket(created ? Response.RoomCreated : Response.RoomNotCreated));
|
||||
if (created)
|
||||
@@ -46,7 +56,9 @@ public class ServerConnexion implements PacketVisitor {
|
||||
|
||||
@Override
|
||||
public void visitPacket(JoinRoomPacket packet) {
|
||||
if(server.getRoomName(this) != null) {
|
||||
if (!checkLogin())
|
||||
return;
|
||||
if (server.getRoomName(this) != null) {
|
||||
server.leaveRoom(this);
|
||||
return;
|
||||
}
|
||||
@@ -58,6 +70,8 @@ public class ServerConnexion implements PacketVisitor {
|
||||
|
||||
@Override
|
||||
public void visitPacket(LeaveRoomPacket packet) {
|
||||
if (!checkLogin())
|
||||
return;
|
||||
String roomName = this.server.getRoomName(this);
|
||||
boolean left = server.leaveRoom(this);
|
||||
sendPacket(new ServerResponsePacket(left ? Response.RoomLeft : Response.RoomNotLeft));
|
||||
@@ -73,17 +87,22 @@ public class ServerConnexion implements PacketVisitor {
|
||||
}
|
||||
|
||||
this.chatterName = packet.getPseudo();
|
||||
sendPacket(new ServerResponsePacket(Response.AuthSuccess));
|
||||
sendPacket(new RoomListPacket(server.getRoomNames()));
|
||||
System.out.println("[Server] Chatter " + packet.getPseudo() + " connected !");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitPacket(RequestRoomListPacket packet) {
|
||||
if (!checkLogin())
|
||||
return;
|
||||
sendPacket(new RoomListPacket(server.getRoomNames()));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitPacket(SendChatMessagePacket packet) {
|
||||
if (!checkLogin())
|
||||
return;
|
||||
boolean messageSent = server.sendToRoom(this, packet);
|
||||
sendPacket(new ServerResponsePacket(messageSent ? Response.MessageSent : Response.MessageNotSent));
|
||||
}
|
||||
@@ -93,20 +112,13 @@ public class ServerConnexion implements PacketVisitor {
|
||||
this.onDisconnect();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitPacket(HandshakePacket packet) {
|
||||
if(this.server.handleConnexionTime(this.clientAddress)) {
|
||||
System.out.println("[Server] Handshake received from " + clientAddress);
|
||||
}
|
||||
sendPacket(packet);
|
||||
}
|
||||
|
||||
private void onDisconnect() {
|
||||
if (this.server.isInRoom(this)) {
|
||||
this.onRoomLeave(this.server.getRoomName(this));
|
||||
}
|
||||
this.server.removeConnexion(this);
|
||||
System.out.println("[Server] Chatter " + chatterName + " disconnected !");
|
||||
if (chatterName != null)
|
||||
System.out.println("[Server] Chatter " + chatterName + " disconnected !");
|
||||
}
|
||||
|
||||
private void onRoomJoin() {
|
||||
|
||||
Reference in New Issue
Block a user