From a2e3be13cc27a2bb5b3377a940b0791b6c54f6ce Mon Sep 17 00:00:00 2001 From: Auxilor Date: Wed, 20 Oct 2021 20:35:56 +0100 Subject: [PATCH] Fixed weird null pdc bugf --- .../ecoenchants/display/EnchantDisplay.java | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/display/EnchantDisplay.java b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/display/EnchantDisplay.java index 7d20534e..ca516930 100644 --- a/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/display/EnchantDisplay.java +++ b/eco-core/core-plugin/src/main/java/com/willfp/ecoenchants/display/EnchantDisplay.java @@ -19,6 +19,7 @@ import org.bukkit.inventory.ItemFlag; import org.bukkit.inventory.ItemStack; import org.bukkit.inventory.meta.EnchantmentStorageMeta; import org.bukkit.inventory.meta.ItemMeta; +import org.bukkit.persistence.PersistentDataContainer; import org.bukkit.persistence.PersistentDataType; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -79,8 +80,8 @@ public class EnchantDisplay extends DisplayModule { @Override public void display(@NotNull final ItemStack itemStack, - @Nullable final Player player, - @NotNull final Object... args) { + @Nullable final Player player, + @NotNull final Object... args) { if (options.isRequireTarget()) { if (!EnchantmentTarget.ALL.getMaterials().contains(itemStack.getType())) { return; @@ -206,14 +207,22 @@ public class EnchantDisplay extends DisplayModule { assert meta != null; - meta.getPersistentDataContainer().remove(legacyV); + PersistentDataContainer pdc = meta.getPersistentDataContainer(); - if (!meta.getPersistentDataContainer().has(keySkip, PersistentDataType.INTEGER)) { + // Fixes weird bug. Apparently nullable. + //noinspection ConstantConditions + if (pdc == null) { + return; + } + + pdc.remove(legacyV); + + if (!pdc.has(keySkip, PersistentDataType.INTEGER)) { meta.removeItemFlags(ItemFlag.HIDE_POTION_EFFECTS); meta.removeItemFlags(ItemFlag.HIDE_ENCHANTS); } - meta.getPersistentDataContainer().remove(keySkip); + pdc.remove(keySkip); itemStack.setItemMeta(meta); }