packets: Fix payload parsing for ServerboundCustomClickActionPacket

This commit is contained in:
Oliver
2025-06-19 22:36:39 +02:00
parent df107beea2
commit f0e6c6d2c5
2 changed files with 13 additions and 1 deletions

View File

@@ -7,6 +7,7 @@ import io.netty.channel.Channel;
import io.netty.channel.ChannelHandlerContext; import io.netty.channel.ChannelHandlerContext;
import io.netty.handler.codec.MessageToMessageDecoder; import io.netty.handler.codec.MessageToMessageDecoder;
import io.papermc.paper.adventure.PaperAdventure; import io.papermc.paper.adventure.PaperAdventure;
import net.minecraft.nbt.StringTag;
import net.minecraft.network.protocol.Packet; import net.minecraft.network.protocol.Packet;
import net.minecraft.network.protocol.common.ServerboundCustomClickActionPacket; import net.minecraft.network.protocol.common.ServerboundCustomClickActionPacket;
import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.level.ServerPlayer;
@@ -80,7 +81,13 @@ public class PacketListenerImpl extends FS_PacketListener {
Map<String, String> payload = new HashMap<>(); Map<String, String> payload = new HashMap<>();
if (customClickActionPacket.payload().isPresent() && customClickActionPacket.payload().get().asCompound().isPresent()) { if (customClickActionPacket.payload().isPresent() && customClickActionPacket.payload().get().asCompound().isPresent()) {
customClickActionPacket.payload().get().asCompound().get().forEach((k, v) -> { customClickActionPacket.payload().get().asCompound().get().forEach((k, v) -> {
if (v.getType().getName().equals(StringTag.TYPE.getName())) {
if (v.asString().isPresent()) {
payload.put(k, v.asString().get());
}
} else {
payload.put(k, v.toString()); payload.put(k, v.toString());
}
}); });
} }

View File

@@ -15,22 +15,27 @@ public class DialogRegistry implements com.fancyinnovations.fancydialogs.api.Dia
this.dialogs = new ConcurrentHashMap<>(); this.dialogs = new ConcurrentHashMap<>();
} }
@Override
public void register(@NotNull Dialog dialog) { public void register(@NotNull Dialog dialog) {
dialogs.put(dialog.getId(), dialog); dialogs.put(dialog.getId(), dialog);
} }
@Override
public void unregister(@NotNull String id) { public void unregister(@NotNull String id) {
dialogs.remove(id); dialogs.remove(id);
} }
@Override
public Dialog get(@NotNull String id) { public Dialog get(@NotNull String id) {
return dialogs.get(id); return dialogs.get(id);
} }
@Override
public Collection<Dialog> getAll() { public Collection<Dialog> getAll() {
return dialogs.values(); return dialogs.values();
} }
@Override
public void clear() { public void clear() {
dialogs.clear(); dialogs.clear();
} }