From 41ae6cc3c0e37e994054c80330bd13d42cc84c8f Mon Sep 17 00:00:00 2001 From: Doc Date: Thu, 16 Jul 2026 23:42:02 -0400 Subject: [PATCH] Fix Adventure Codec for ClickEvent#custom when BinaryTagHolder is null --- .../java/io/papermc/paper/adventure/AdventureCodecs.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/paper-server/src/main/java/io/papermc/paper/adventure/AdventureCodecs.java b/paper-server/src/main/java/io/papermc/paper/adventure/AdventureCodecs.java index 49388baff6fa..772a86b9f36f 100644 --- a/paper-server/src/main/java/io/papermc/paper/adventure/AdventureCodecs.java +++ b/paper-server/src/main/java/io/papermc/paper/adventure/AdventureCodecs.java @@ -149,8 +149,10 @@ public final class AdventureCodecs { ).apply(instance, ClickEvent::showDialog))); static final MapCodec CUSTOM_CODEC = mapCodec((instance) -> instance.group( KEY_CODEC.fieldOf("id").forGetter(a -> ((ClickEvent.Payload.Custom) a.payload()).key()), - BINARY_TAG_HOLDER_CODEC.fieldOf("payload").forGetter(a -> ((ClickEvent.Payload.Custom) a.payload()).nbt()) - ).apply(instance, ClickEvent::custom)); + BINARY_TAG_HOLDER_CODEC.optionalFieldOf("payload").forGetter(a -> Optional.ofNullable(((ClickEvent.Payload.Custom) a.payload()).nbt())) + ).apply(instance, (key, binaryTagHolder) -> { + return ClickEvent.custom(key, binaryTagHolder.orElse(null)); + })); static final ClickEventType OPEN_URL_CLICK_EVENT_TYPE = new ClickEventType(OPEN_URL_CODEC, "open_url"); static final ClickEventType OPEN_FILE_CLICK_EVENT_TYPE = new ClickEventType(OPEN_FILE_CODEC, "open_file");