From dede8b7f20451519659391d8e42ea668885d490f Mon Sep 17 00:00:00 2001 From: Eclipse Date: Wed, 16 Jul 2025 19:30:13 +0000 Subject: [PATCH] Fix: make parsed dialog inputs mutable before adding additions map (#5690) (#5691) --- .../geysermc/geyser/session/dialog/action/DialogAction.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/org/geysermc/geyser/session/dialog/action/DialogAction.java b/core/src/main/java/org/geysermc/geyser/session/dialog/action/DialogAction.java index 2b9a4d44d..bc2d97bf2 100644 --- a/core/src/main/java/org/geysermc/geyser/session/dialog/action/DialogAction.java +++ b/core/src/main/java/org/geysermc/geyser/session/dialog/action/DialogAction.java @@ -28,6 +28,7 @@ package org.geysermc.geyser.session.dialog.action; import net.kyori.adventure.key.Key; import org.checkerframework.checker.nullness.qual.Nullable; import org.cloudburstmc.nbt.NbtMap; +import org.cloudburstmc.nbt.NbtMapBuilder; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.dialog.Dialog; import org.geysermc.geyser.session.dialog.input.ParsedInputs; @@ -210,9 +211,9 @@ public interface DialogAction { @Override public void run(GeyserSession session, ParsedInputs inputs) { - NbtMap map = inputs.asNbtMap(); + NbtMapBuilder map = inputs.asNbtMap().toBuilder(); map.putAll(additions); // Can be optional on Java. We just read an empty map when it doesn't exist. - session.sendDownstreamPacket(new ServerboundCustomClickActionPacket(id, map)); + session.sendDownstreamPacket(new ServerboundCustomClickActionPacket(id, map.build())); } } }