@@ -83,7 +83,7 @@ public class Server {
8383 private final Map <InetSocketAddress , Player > players = new Object2ObjectOpenHashMap <>();
8484 private final SynapseInterface synapseInterface ;
8585 private final Map <String , Client > clients = new Object2ObjectOpenHashMap <>();
86- private ClientData clientData = new ClientData ();
86+ private volatile ClientData clientData = new ClientData ();
8787 private final Map <String , Client > mainClients = new Object2ObjectOpenHashMap <>();
8888 private Synapse synapse ;
8989 private final Thread currentThread ;
@@ -311,6 +311,7 @@ public Map<String, Client> getMainClients() {
311311 public void removeClient (Client client ) {
312312 if (this .clients .remove (client .getHash ()) != null ) {
313313 this .mainClients .remove (client .getHash ());
314+ this .updateClientData ();
314315 }
315316 }
316317
@@ -323,15 +324,13 @@ public ClientData getClientData() {
323324 }
324325
325326 public void updateClientData () {
326- if (!this .clients .isEmpty ()) {
327- ClientData clientData = new ClientData ();
328- for (Client client : this .clients .values ()) {
329- ClientData .Entry entry = new Entry (client .getIp (), client .getPort (), client .getPlayers ().size (),
330- client .getMaxPlayers (), client .getDescription ());
331- clientData .clientList .put (client .getHash (), entry );
332- }
333- this .clientData = clientData ;
327+ ClientData clientData = new ClientData ();
328+ for (Client client : this .clients .values ()) {
329+ ClientData .Entry entry = new Entry (client .getIp (), client .getPort (), client .getPlayers ().size (),
330+ client .getMaxPlayers (), client .getDescription ());
331+ clientData .clientList .put (client .getHash (), entry );
334332 }
333+ this .clientData = clientData ;
335334 }
336335
337336 public boolean comparePassword (String pass ) {
0 commit comments