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; return true;
} }
public void unregisterConnection(ConnectedPlayer connection) { public boolean unregisterConnection(ConnectedPlayer connection) {
connectionsByName.remove(connection.getUsername().toLowerCase(Locale.US), connection); boolean name = connectionsByName.remove(connection.getUsername().toLowerCase(Locale.US), connection);
connectionsByUuid.remove(connection.getUniqueId(), connection); boolean uuid = connectionsByUuid.remove(connection.getUniqueId(), connection);
return name && uuid;
} }
@Override @Override

View File

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