From 910757a2031b280701165faf4c3ec774cbe3e4f9 Mon Sep 17 00:00:00 2001 From: LoJoSho Date: Mon, 4 Mar 2024 17:05:04 -0600 Subject: [PATCH] feat: move to static for initializations of ItemBuilder --- .../serializer/ItemBuilderSerializer.java | 2 +- .../hibiscuscommons/items/ItemBuilder.java | 22 ++++++++++++++----- 2 files changed, 18 insertions(+), 6 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 f1e3a6b..d1093b6 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("AIR")); + ItemBuilder builder = ItemBuilder.of(materialNode.getString("AIR")); if (!amountNode.virtual()) builder.amount(amountNode.getInt(1)); if (!nameNode.virtual()) builder.name(nameNode.getString("")); if (!unbreakableNode.virtual()) builder.unbreakable(unbreakableNode.getBoolean()); 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 16bdb7f..1b3dba7 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/items/ItemBuilder.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/items/ItemBuilder.java @@ -39,19 +39,31 @@ public class ItemBuilder { private boolean glowing = false; private Color color; - public ItemBuilder(String material) { + public static @NotNull ItemBuilder of(@NotNull String material) { + return new ItemBuilder(material); + } + + public static @NotNull ItemBuilder of(@NotNull Material material) { + return new ItemBuilder(material); + } + + public static @NotNull ItemBuilder of(@NotNull ItemStack itemStack) { + return new ItemBuilder(itemStack); + } + + private ItemBuilder(String material) { material(material); } - public ItemBuilder(Material material) { + private ItemBuilder(Material material) { material(material.toString()); } - public ItemBuilder(@NotNull ItemStack itemStack) { + private ItemBuilder(@NotNull ItemStack itemStack) { this.material = Hooks.getStringItem(itemStack); this.amount = itemStack.getAmount(); ItemMeta meta = itemStack.getItemMeta(); - if (meta == null) return; + if (meta == null) meta = Objects.requireNonNull(Bukkit.getItemFactory().getItemMeta(itemStack.getType())); if (meta.hasDisplayName()) this.display = meta.getDisplayName(); if (meta.hasCustomModelData()) this.model = meta.getCustomModelData(); if (meta.isUnbreakable()) this.unbreakable = true; @@ -368,7 +380,7 @@ public class ItemBuilder { if (itemStack == null) return null; itemStack.setAmount(amount); ItemMeta meta = itemStack.getItemMeta(); - if (meta == null) return itemStack; + if (meta == null) meta = Objects.requireNonNull(Bukkit.getItemFactory().getItemMeta(itemStack.getType())); if (display != null) meta.setDisplayName(StringUtils.parseStringToString(display)); if (model >= 0) meta.setCustomModelData(model); if (!lore.isEmpty()) {