diff --git a/common/src/main/java/org/geysermc/floodgate/player/FloodgateHandshakeHandler.java b/common/src/main/java/org/geysermc/floodgate/player/FloodgateHandshakeHandler.java index 4edc537b..f13b6271 100644 --- a/common/src/main/java/org/geysermc/floodgate/player/FloodgateHandshakeHandler.java +++ b/common/src/main/java/org/geysermc/floodgate/player/FloodgateHandshakeHandler.java @@ -39,6 +39,7 @@ import it.unimi.dsi.fastutil.objects.ObjectObjectImmutablePair; import java.net.InetSocketAddress; import java.util.UUID; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CompletionException; import java.util.concurrent.TimeUnit; import lombok.AccessLevel; import lombok.AllArgsConstructor; @@ -199,6 +200,13 @@ public final class FloodgateHandshakeHandler { return handlePart2(channel, hostname, result.left(), result.right()); } + if (error instanceof CompletionException) { + if (error.getCause() == null) { + error.printStackTrace(); + } + error = error.getCause(); + } + if (error instanceof HandshakeResult) { return (HandshakeResult) error; }