geforkt von Mirrors/Velocity
Better generic cleanup.
Dieser Commit ist enthalten in:
Ursprung
74ff56cbc9
Commit
942e2f2e1a
@ -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);
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren