From 4e75b5ca1d3278f4f5a3fa020a032bd276a799d0 Mon Sep 17 00:00:00 2001 From: Heriptik <37271167+Heriptik@users.noreply.github.com> Date: Fri, 3 Oct 2025 08:56:15 +0200 Subject: [PATCH] Fix: added null-checks for Material and EntityType in applyStat to avoid NPE (#589) --- .../net/william278/husksync/data/BukkitData.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/bukkit/src/main/java/net/william278/husksync/data/BukkitData.java b/bukkit/src/main/java/net/william278/husksync/data/BukkitData.java index 400a5cf9..6d135ea9 100644 --- a/bukkit/src/main/java/net/william278/husksync/data/BukkitData.java +++ b/bukkit/src/main/java/net/william278/husksync/data/BukkitData.java @@ -524,8 +524,18 @@ public abstract class BukkitData implements Data { try { switch (type) { case UNTYPED -> player.setStatistic(stat, value); - case BLOCK, ITEM -> player.setStatistic(stat, Objects.requireNonNull(matchMaterial(key[0])), value); - case ENTITY -> player.setStatistic(stat, Objects.requireNonNull(matchEntityType(key[0])), value); + case BLOCK, ITEM -> { + Material material = matchMaterial(key.length > 0 ? key[0] : null); + if (material != null) { + player.setStatistic(stat, material, value); + } + } + case ENTITY -> { + EntityType entity = matchEntityType(key.length > 0 ? key[0] : null); + if (entity != null) { + player.setStatistic(stat, entity, value); + } + } } } catch (Throwable a) { plugin.log(Level.WARNING, "Failed to apply statistic " + id, a);