If we failed to unregister, don't fire the disconnect event

This commit is contained in:
Andrew Steinborn
2018-11-17 17:03:31 -05:00
parent 3023a90295
commit 5822cc31d8
2 changed files with 7 additions and 5 deletions

View File

@@ -291,9 +291,10 @@ public class VelocityServer implements ProxyServer {
return true;
}
public void unregisterConnection(ConnectedPlayer connection) {
connectionsByName.remove(connection.getUsername().toLowerCase(Locale.US), connection);
connectionsByUuid.remove(connection.getUniqueId(), connection);
public boolean unregisterConnection(ConnectedPlayer connection) {
boolean name = connectionsByName.remove(connection.getUsername().toLowerCase(Locale.US), connection);
boolean uuid = connectionsByUuid.remove(connection.getUniqueId(), connection);
return name && uuid;
}
@Override

View File

@@ -432,8 +432,9 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player {
if (connectedServer != null) {
connectedServer.disconnect();
}
server.unregisterConnection(this);
server.getEventManager().fireAndForget(new DisconnectEvent(this));
if (server.unregisterConnection(this)) {
server.getEventManager().fireAndForget(new DisconnectEvent(this));
}
}
@Override