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 c02cf45..15cdaee 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 @@ -64,32 +64,32 @@ public class ItemBuilderSerializer implements TypeSerializer { if (materialNode.virtual()) return null; 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()); - if (!glowingNode.virtual()) builder.setGlowing(glowingNode.getBoolean()); + if (!amountNode.virtual()) builder.amount(amountNode.getInt(1)); + if (!nameNode.virtual()) builder.name(nameNode.getString("")); + if (!unbreakableNode.virtual()) builder.unbreakable(unbreakableNode.getBoolean()); + if (!glowingNode.virtual()) builder.glowing(glowingNode.getBoolean()); if (!loreNode.virtual()) builder.setLoreUsingStrings(new ArrayList<>(loreNode.getList(String.class, new ArrayList<>()))); if (!appendLoreNode.virtual()) { String loreAppendMode = appendLoreNode.getString("").toUpperCase(); - if (EnumUtils.isValidEnum(LoreAppendMode.class, loreAppendMode)) builder.setLoreAppendMode(LoreAppendMode.valueOf(loreAppendMode)); + if (EnumUtils.isValidEnum(LoreAppendMode.class, loreAppendMode)) builder.loreAppendMode(LoreAppendMode.valueOf(loreAppendMode)); } - if (!modelDataNode.virtual()) builder.setModelData(modelDataNode.getInt()); + if (!modelDataNode.virtual()) builder.model(modelDataNode.getInt()); if (!nbtNode.virtual()) { for (ConfigurationNode nbtNodes : nbtNode.childrenMap().values()) { - builder.addNBTData(NamespacedKey.minecraft(nbtNodes.key().toString()), nbtNodes.getString()); + builder.NBTData(NamespacedKey.minecraft(nbtNodes.key().toString()), nbtNodes.getString()); } } if (!enchantsNode.virtual()) { for (ConfigurationNode enchantNode : enchantsNode.childrenMap().values()) { if (Enchantment.getByKey(NamespacedKey.minecraft(enchantNode.key().toString())) == null) continue; - builder.addEnchantment(enchantNode.key().toString(), enchantNode.getInt(1)); + builder.enchant(enchantNode.key().toString(), enchantNode.getInt(1)); } } try { if (!itemFlagsNode.virtual()) { for (String itemFlag : itemFlagsNode.getList(String.class)) { - builder.addItemFlag(ItemFlag.valueOf(itemFlag)); + builder.itemFlag(ItemFlag.valueOf(itemFlag)); } } } catch (Exception e) { @@ -100,25 +100,25 @@ public class ItemBuilderSerializer implements TypeSerializer { String ownerString = ownerNode.getString(); if (ownerString.contains("%")) { // This means it has PAPI placeholders in it - builder.addNBTData(InventoryUtils.getSkullOwner(), ownerString); + builder.NBTData(InventoryUtils.getSkullOwner(), ownerString); } - builder.setSkullOwner(ownerString); + builder.skullOwner(ownerString); } if (!textureNode.virtual()) { String textureString = textureNode.getString(); if (textureString.contains("%")) { // This means it has PAPI placeholders in it - builder.addNBTData(InventoryUtils.getSkullTexture(), textureString); + builder.NBTData(InventoryUtils.getSkullTexture(), textureString); } - builder.setTexture(textureString); + builder.texture(textureString); } if (!colorNode.virtual()) { if (!redNode.virtual()) { - builder.setColor(Color.fromRGB(redNode.getInt(0), greenNode.getInt(0), blueNode.getInt(0))); + builder.color(Color.fromRGB(redNode.getInt(0), greenNode.getInt(0), blueNode.getInt(0))); } else { - builder.setColor(ServerUtils.hex2Rgb(colorNode.getString("#FFFFFF"))); + builder.color(ServerUtils.hex2Rgb(colorNode.getString("#FFFFFF"))); } } 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 17f6c2c..16bdb7f 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/items/ItemBuilder.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/items/ItemBuilder.java @@ -1,8 +1,6 @@ package me.lojosho.hibiscuscommons.items; -import lombok.Getter; import me.lojosho.hibiscuscommons.hooks.Hooks; -import me.lojosho.hibiscuscommons.util.AdventureUtils; import me.lojosho.hibiscuscommons.util.InventoryUtils; import me.lojosho.hibiscuscommons.util.StringUtils; import net.kyori.adventure.text.Component; @@ -19,7 +17,6 @@ import org.bukkit.persistence.PersistentDataType; import org.bukkit.profile.PlayerProfile; import org.bukkit.profile.PlayerTextures; import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.net.URL; import java.util.*; @@ -27,37 +24,27 @@ import java.util.stream.Collectors; public class ItemBuilder { - @Getter private String material; - @Getter private String display; - @Getter private String texture; - @Getter private String skullOwner; private List lore = new ArrayList<>(); private final ArrayList itemFlags = new ArrayList<>(); private final HashMap enchantments = new HashMap<>(); private final HashMap nbtData = new HashMap<>(); - @Getter private int amount = 1; - @Getter private int model = -1; - @Getter private LoreAppendMode loreAppendMode; - @Getter private boolean unbreakable = false; - @Getter private boolean glowing = false; - @Getter private Color color; public ItemBuilder(String material) { - setMaterial(material); + material(material); } public ItemBuilder(Material material) { - setMaterial(material.toString()); + material(material.toString()); } public ItemBuilder(@NotNull ItemStack itemStack) { @@ -100,57 +87,80 @@ public class ItemBuilder { * @param material * @return */ - public ItemBuilder setMaterial(@NotNull String material) { + public ItemBuilder material(@NotNull String material) { this.material = material; return this; } - public ItemBuilder setDisplayName(@NotNull String display) { + public String material() { + return material; + } + + public ItemBuilder name(@NotNull String display) { this.display = display; return this; } - public ItemBuilder setDisplayName(@NotNull Component display) { + public String name() { + return display; + } + + public ItemBuilder name(@NotNull Component display) { this.display = MiniMessage.miniMessage().serialize(display); return this; } - public ItemBuilder setModelData(int modelData) { + public ItemBuilder model(int modelData) { this.model = modelData; return this; } - public ItemBuilder setAmount(int amount) { + public int model() { + return model; + } + + public ItemBuilder amount(int amount) { this.amount = amount; return this; } - public ItemBuilder setUnbreakable(boolean unbreakable) { + public int amount() { + return amount; + } + + public ItemBuilder unbreakable(boolean unbreakable) { this.unbreakable = unbreakable; return this; } - public ItemBuilder setTexture(@NotNull String texture) { + public boolean unbreakable() { + return unbreakable; + } + + public ItemBuilder texture(@NotNull String texture) { this.texture = texture; return this; } - public ItemBuilder setSkullOwner(@NotNull String username) { + public String texture() { + return texture; + } + + public ItemBuilder skullOwner(@NotNull String username) { this.skullOwner = username; return this; } - /** - * Should try to use #{@link #setLore(List)} instead, as this is just sending strings. - * @param lore The lore of the item - * @return - */ - public ItemBuilder setLoreUsingStrings(@NotNull List lore) { + public String skullOwner() { + return skullOwner; + } + + public ItemBuilder lore(@NotNull List lore) { this.lore = lore; return this; } - public ItemBuilder setLore(@NotNull List lore) { + public ItemBuilder loreUsingComponents(@NotNull List lore) { this.lore = lore.stream() .map(component -> MiniMessage.miniMessage().serialize(component)) .collect(Collectors.toList()); @@ -162,7 +172,7 @@ public class ItemBuilder { * @param flags * @return */ - public ItemBuilder addItemFlag(ItemFlag... flags) { + public ItemBuilder itemFlag(ItemFlag... flags) { for (ItemFlag flag : flags) this.itemFlags.add(flag.toString()); return this; } @@ -172,28 +182,36 @@ public class ItemBuilder { * @param flags * @return */ - public ItemBuilder addItemFlag(String... flags) { + public ItemBuilder itemFlag(String... flags) { this.itemFlags.addAll((Arrays.asList(flags))); return this; } + public List itemFlag() { + return List.copyOf(itemFlags); + } + /** * Sets the lore append mode on how to add extra lore to an existing item * So if you get an item from Oraxen, where do you want the additional lore to be added * @param mode * @return */ - public ItemBuilder setLoreAppendMode(@NotNull LoreAppendMode mode) { + public ItemBuilder loreAppendMode(@NotNull LoreAppendMode mode) { this.loreAppendMode = mode; return this; } + public LoreAppendMode loreAppendMode() { + return loreAppendMode; + } + /** * Sets the color of the item * @param color * @return */ - public ItemBuilder setColor(Color color) { + public ItemBuilder color(Color color) { this.color = color; return this; } @@ -205,7 +223,7 @@ public class ItemBuilder { * @param blue The blue value * @return */ - public ItemBuilder setColor(int red, int green, int blue) { + public ItemBuilder color(int red, int green, int blue) { this.color = Color.fromRGB(red, green, blue); return this; } @@ -215,17 +233,21 @@ public class ItemBuilder { * @param color * @return */ - public ItemBuilder setColor(DyeColor color) { + public ItemBuilder color(DyeColor color) { this.color = color.getColor(); return this; } + public Color color() { + return color; + } + /** * Adds an enchantment to the item. If the enchantment is not valid, it will be ignored. Default value is 1 * @param enchants * @return */ - public ItemBuilder addEnchantment(String... enchants) { + public ItemBuilder enchant(String... enchants) { for (String enchant : enchants) enchantments.put(enchant, 1); return this; } @@ -236,7 +258,7 @@ public class ItemBuilder { * @param level * @return */ - public ItemBuilder addEnchantment(String enchant, int level) { + public ItemBuilder enchant(String enchant, int level) { enchantments.put(enchant, level); return this; } @@ -247,7 +269,7 @@ public class ItemBuilder { * @param level * @return */ - public ItemBuilder addEnchantment(Enchantment enchant, int level) { + public ItemBuilder enchant(Enchantment enchant, int level) { enchantments.put(enchant.getKey().getKey(), level); return this; } @@ -257,7 +279,7 @@ public class ItemBuilder { * @param glowing * @return */ - public ItemBuilder setGlowing(boolean glowing) { + public ItemBuilder glowing(boolean glowing) { this.glowing = glowing; return this; } @@ -268,7 +290,7 @@ public class ItemBuilder { * @param value * @return */ - public ItemBuilder addNBTData(NamespacedKey key, String value) { + public ItemBuilder NBTData(NamespacedKey key, String value) { nbtData.put(key, value); return this; } @@ -297,7 +319,7 @@ public class ItemBuilder { * Returns the lore of the item. Use #setLore to set the lore! * @return */ - public List getLore() { + public List lore() { return List.copyOf(lore); } @@ -305,11 +327,11 @@ public class ItemBuilder { * Returns all the item flags of the item. Use #addItemFlag to add item flags! * @return */ - public List getItemFlags() { + public List itemFlags() { return List.copyOf(itemFlags); } - public List getNBTDataKeys() { + public List NBTData() { return List.copyOf(nbtData.keySet()); } @@ -409,7 +431,7 @@ public class ItemBuilder { } } } - if (itemFlags != null && !itemFlags.isEmpty()) { + if (!itemFlags.isEmpty()) { for (String flag : itemFlags) { if (!EnumUtils.isValidEnum(ItemFlag.class, flag)) continue; ItemFlag iFlag = ItemFlag.valueOf(flag); @@ -422,7 +444,7 @@ public class ItemBuilder { meta.addItemFlags(ItemFlag.HIDE_ENCHANTS); } - if (enchantments != null && !enchantments.isEmpty()) { + if (!enchantments.isEmpty()) { for (String enchantment : enchantments.keySet()) { if (Enchantment.getByKey(NamespacedKey.minecraft(enchantment)) == null) continue; meta.addEnchant(Enchantment.getByKey(NamespacedKey.minecraft(enchantment)), enchantments.get(enchantment), true);