From c98796aeb6fa121f33f598dfa46a09bb117c7531 Mon Sep 17 00:00:00 2001 From: Roch Blondiaux <68775690+RochBlondiaux@users.noreply.github.com> Date: Tue, 11 Feb 2025 18:03:31 +0100 Subject: [PATCH] Implemented a way to close forms from floodgate (#5247) * feat: send close form packet when receiving empty form data * use session#closeForm --------- Co-authored-by: Roch Blonndiaux Co-authored-by: onebeastchris --- .../protocol/java/JavaCustomPayloadTranslator.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaCustomPayloadTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaCustomPayloadTranslator.java index c3108167b..d5c3c246c 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaCustomPayloadTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/JavaCustomPayloadTranslator.java @@ -67,6 +67,12 @@ public class JavaCustomPayloadTranslator extends PacketTranslator { byte[] data = packet.getData(); + // If the data is empty, we just need to close the form + if (data.length == 0) { + session.closeForm(); + return; + } + // receive: first byte is form type, second and third are the id, remaining is the form data // respond: first and second byte id, remaining is form response data @@ -96,7 +102,6 @@ public class JavaCustomPayloadTranslator extends PacketTranslator { byte[] data = packet.getData();