From 35928403d3d4cf2e83afb6e59cc98dc3527a12a1 Mon Sep 17 00:00:00 2001 From: LoJoSho Date: Fri, 23 Feb 2024 18:14:28 -0600 Subject: [PATCH] feat: improve backwards compatibility with other plugins --- .../config/serializer/ItemBuilderSerializer.java | 2 +- .../config/serializer/SerializerManager.java | 8 ++++---- .../lojosho/hibiscuscommons/items/ItemBuilder.java | 14 +++++--------- 3 files changed, 10 insertions(+), 14 deletions(-) diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/config/serializer/ItemBuilderSerializer.java b/common/src/main/java/me/lojosho/hibiscuscommons/config/serializer/ItemBuilderSerializer.java index 5c19030..74e4d4d 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/config/serializer/ItemBuilderSerializer.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/config/serializer/ItemBuilderSerializer.java @@ -63,7 +63,7 @@ public class ItemBuilderSerializer implements TypeSerializer { if (materialNode.virtual()) return null; - ItemBuilder builder = new ItemBuilder(materialNode.getString()); + ItemBuilder builder = new ItemBuilder(materialNode.getString("AIR")); if (!amountNode.virtual()) builder.setAmount(amountNode.getInt(1)); if (!nameNode.virtual()) builder.setDisplayName(nameNode.getString("")); if (!unbreakableNode.virtual()) builder.setUnbreakable(unbreakableNode.getBoolean()); diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/config/serializer/SerializerManager.java b/common/src/main/java/me/lojosho/hibiscuscommons/config/serializer/SerializerManager.java index b4c13ac..3575f20 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/config/serializer/SerializerManager.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/config/serializer/SerializerManager.java @@ -20,11 +20,11 @@ public class SerializerManager { return ItemBuilderSerializer.INSTANCE; } - public static ItemBuilder serializeItemBuilder(ConfigurationNode node) throws SerializationException { - return ItemBuilderSerializer.INSTANCE.deserialize(ItemBuilder.class, node); + public static ItemBuilder serializeItemBuilder(ConfigurationNode source) throws SerializationException { + return ItemBuilderSerializer.INSTANCE.deserialize(ItemBuilder.class, source); } - public static Location serializeLocation(ConfigurationNode node) throws SerializationException { - return LocationSerializer.INSTANCE.deserialize(Location.class, node); + public static Location serializeLocation(ConfigurationNode source) throws SerializationException { + return LocationSerializer.INSTANCE.deserialize(Location.class, source); } } diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/items/ItemBuilder.java b/common/src/main/java/me/lojosho/hibiscuscommons/items/ItemBuilder.java index 90e287b..4032999 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/items/ItemBuilder.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/items/ItemBuilder.java @@ -49,15 +49,11 @@ public class ItemBuilder { private Color color; public ItemBuilder(String material) { - ItemStack generatedItem = Hooks.getItem(material); - if (generatedItem == null) throw new IllegalArgumentException("Item String " + material + " is not valid"); - new ItemBuilder(generatedItem); + setMaterial(material); } public ItemBuilder(Material material) { - ItemStack generatedItem = Hooks.getItem(material.toString()); - if (generatedItem == null) throw new IllegalArgumentException("Item String " + material + " is not valid"); - new ItemBuilder(generatedItem); + setMaterial(material.toString()); } public ItemBuilder(@NotNull ItemStack itemStack) { @@ -74,7 +70,7 @@ public class ItemBuilder { this.texture = skullMeta.getPersistentDataContainer().get(InventoryUtils.getSkullTexture(), PersistentDataType.STRING); } } - if (meta.hasLore()) this.lore = new ArrayList<>(meta.getLore()); + if (meta.hasLore()) this.lore = new ArrayList<>(Objects.requireNonNullElse(meta.getLore(), new ArrayList<>())); if (meta instanceof Colorable colorable) { this.color = colorable.getColor().getColor(); } @@ -166,7 +162,7 @@ public class ItemBuilder { * @param mode * @return */ - public ItemBuilder setLoreAppendMode(LoreAppendMode mode) { + public ItemBuilder setLoreAppendMode(@NotNull LoreAppendMode mode) { this.loreAppendMode = mode; return this; } @@ -338,7 +334,7 @@ public class ItemBuilder { List lore = new ArrayList<>(); LoreAppendMode mode = loreAppendMode; - if (!meta.hasLore() && loreAppendMode != null) mode = LoreAppendMode.IGNORE; + if (!meta.hasLore() && loreAppendMode == null) mode = LoreAppendMode.IGNORE; switch (mode) { case IGNORE: // DM lore is not added at all lore.addAll(itemLore);