1
0
mirror of https://github.com/GeyserMC/Geyser.git synced 2025-12-19 14:59:27 +00:00

Fix: make parsed dialog inputs mutable before adding additions map (#5690) (#5691)

This commit is contained in:
Eclipse
2025-07-16 19:30:13 +00:00
committed by GitHub
parent 17bd368c9d
commit dede8b7f20

View File

@@ -28,6 +28,7 @@ package org.geysermc.geyser.session.dialog.action;
import net.kyori.adventure.key.Key; import net.kyori.adventure.key.Key;
import org.checkerframework.checker.nullness.qual.Nullable; import org.checkerframework.checker.nullness.qual.Nullable;
import org.cloudburstmc.nbt.NbtMap; import org.cloudburstmc.nbt.NbtMap;
import org.cloudburstmc.nbt.NbtMapBuilder;
import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.session.GeyserSession;
import org.geysermc.geyser.session.dialog.Dialog; import org.geysermc.geyser.session.dialog.Dialog;
import org.geysermc.geyser.session.dialog.input.ParsedInputs; import org.geysermc.geyser.session.dialog.input.ParsedInputs;
@@ -210,9 +211,9 @@ public interface DialogAction {
@Override @Override
public void run(GeyserSession session, ParsedInputs inputs) { 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. 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()));
} }
} }
} }