diff --git a/plugin/src/main/java/net/elytrium/limboapi/server/LimboSessionHandlerImpl.java b/plugin/src/main/java/net/elytrium/limboapi/server/LimboSessionHandlerImpl.java index 61e76037..58070740 100644 --- a/plugin/src/main/java/net/elytrium/limboapi/server/LimboSessionHandlerImpl.java +++ b/plugin/src/main/java/net/elytrium/limboapi/server/LimboSessionHandlerImpl.java @@ -141,6 +141,13 @@ public void onConfig(LimboPlayer player) { return; } + // FinishedUpdate is already sent, but the client hasn't acknowledged it yet. Vanilla clients answer + // a keepalive received in this window while their outbound protocol is unconfigured and disconnect with + // "Pipeline has no outbound protocol configured", so wait for the acknowledgement like vanilla servers do. + if (!this.playTransition.isDone()) { + return; + } + if (this.keepAlivePending) { if (++this.keepAlivesSkipped == 2) { connection.closeWith(this.plugin.getPackets().getTimeOut(this.player.getConnection().getState()));