13
0
geforkt von Mirrors/Velocity

Better generic cleanup.

Dieser Commit ist enthalten in:
Andrew Steinborn 2020-05-25 11:56:56 -04:00
Ursprung 74ff56cbc9
Commit 942e2f2e1a

Datei anzeigen

@ -757,11 +757,18 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player {
VelocityServerConnection con = new VelocityServerConnection(vrs, VelocityServerConnection con = new VelocityServerConnection(vrs,
ConnectedPlayer.this, server); ConnectedPlayer.this, server);
connectionInFlight = con; connectionInFlight = con;
return con.connect(); return con.connect().whenCompleteAsync((result, throwable) ->
this.cleanupIfRequired(con));
}, connection.eventLoop()); }, connection.eventLoop());
}); });
} }
private void cleanupIfRequired(VelocityServerConnection establishedConnection) {
if (establishedConnection == connectionInFlight) {
resetInFlightConnection();
}
}
@Override @Override
public CompletableFuture<Result> connect() { public CompletableFuture<Result> connect() {
return this.internalConnect() return this.internalConnect()
@ -769,11 +776,7 @@ public class ConnectedPlayer implements MinecraftConnectionAssociation, Player {
if (status != null && !status.isSuccessful()) { if (status != null && !status.isSuccessful()) {
if (!status.isSafe()) { if (!status.isSafe()) {
handleConnectionException(status.getAttemptedConnection(), throwable, false); handleConnectionException(status.getAttemptedConnection(), throwable, false);
} else if (status.getStatus() == Status.SERVER_DISCONNECTED) {
resetInFlightConnection();
} }
} else if (throwable != null) {
resetInFlightConnection();
} }
}, connection.eventLoop()) }, connection.eventLoop())
.thenApply(x -> x); .thenApply(x -> x);