From 6857976f6d567d16cbefacd9d10420015d75c7c5 Mon Sep 17 00:00:00 2001 From: Diogo Correia Date: Wed, 27 Nov 2024 15:16:45 +0100 Subject: [PATCH] fix(spigot): exception when render type of scoreboard objective is null --- .../triton/packetinterceptor/ProtocolLibListener.java | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/com/rexcantor64/triton/packetinterceptor/ProtocolLibListener.java b/core/src/main/java/com/rexcantor64/triton/packetinterceptor/ProtocolLibListener.java index 7f5b840f..30881e55 100644 --- a/core/src/main/java/com/rexcantor64/triton/packetinterceptor/ProtocolLibListener.java +++ b/core/src/main/java/com/rexcantor64/triton/packetinterceptor/ProtocolLibListener.java @@ -716,7 +716,15 @@ private void handleScoreboardObjective(PacketEvent packet, SpigotLanguagePlayer val chatComponentsModifier = packet.getPacket().getChatComponents(); val displayName = chatComponentsModifier.readSafely(0); - val renderType = packet.getPacket().getRenderTypes().readSafely(0); + EnumWrappers.RenderType renderType; + try { + renderType = packet.getPacket().getRenderTypes().readSafely(0); + } catch (IllegalArgumentException e) { + // When plugins also using ProtocolLib don't set this field, it will be null and ProtocolLib will + // fail to convert it to the enum value. + // Fallback to INTEGER since that's th default anyway. + renderType = EnumWrappers.RenderType.INTEGER; + } WrappedNumberFormat numberFormat = null; if (WrappedNumberFormat.isSupported()) { if (MinecraftVersion.v1_20_5.atOrAbove()) {