This won’t loop more than once, so I am unable to check if I have a client message:
new Thread() {
public void run() {
while(true) {
for(int I=0; I<numPlayers; I++) {
if(!players[I].isConnected()) {
players[I].drop();
System.out.println("Client disconnected!");
players[I]=null;
readers[I]=null;
writers[I]=null;
numPlayers--;
}
try {
System.out.println(readers[I].ready());
if(readers[I].ready()) {
BufferedReader reader = readers[I];
System.out.println("Reading");
switch(reader.read()) {
case PacketID.Connect:
System.out.println("Connect");
players[I].name=reader.readLine();
PrintWriter writer=writers[I];
writer.write(PacketID.Connect);
writer.write(MaxPlayers);
writer.write(numPlayers);
for(int I2=0;I2<numPlayers;I2++){
writer.println(players[I2].name);
players[I2].sendMessage(
"Client "+players[I].name+" has connected!");
}
writer.flush();
break;
case PacketID.Ready:
System.out.println("lolol lol");
break;
}
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}.start();
I can see people saying my code is messy and inefficient.
I’m going to clean it all up later
Also I don’t know why stack overflow is malformatting my code.
I fixed it, using isConnected hung the server