From 2aa6b50938d0e3466c985f477e8465b388f7bdf8 Mon Sep 17 00:00:00 2001 From: LoJoSho Date: Tue, 3 Jan 2023 16:31:09 -0600 Subject: [PATCH] Move cosmetic item creation to Cosmetic --- .../hmccosmetics/cosmetic/Cosmetic.java | 25 +++++++++++++++++- .../cosmetic/types/CosmeticArmorType.java | 21 +-------------- .../cosmetic/types/CosmeticBackpackType.java | 26 ------------------- .../cosmetic/types/CosmeticMainhandType.java | 24 ----------------- 4 files changed, 25 insertions(+), 71 deletions(-) diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/Cosmetic.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/Cosmetic.java index 650cc1fc..d626af45 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/Cosmetic.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/Cosmetic.java @@ -1,15 +1,21 @@ package com.hibiscusmc.hmccosmetics.cosmetic; +import com.hibiscusmc.hmccosmetics.config.serializer.ItemSerializer; import com.hibiscusmc.hmccosmetics.user.CosmeticUser; import com.hibiscusmc.hmccosmetics.util.MessagesUtil; +import org.bukkit.Material; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.Nullable; import org.spongepowered.configurate.ConfigurationNode; +import org.spongepowered.configurate.serialize.SerializationException; + +import java.util.logging.Level; public class Cosmetic { private String id; private String permission; + private ItemStack item; private CosmeticSlot slot; private boolean dyable; @@ -20,6 +26,9 @@ public class Cosmetic { } else { this.permission = null; } + + if (!config.node("item").virtual()) this.item = generateItemStack(config.node("item")); + MessagesUtil.sendDebugMessages("Slot: " + config.node("slot").getString()); setSlot(CosmeticSlot.valueOf(config.node("slot").getString())); @@ -72,6 +81,20 @@ public class Cosmetic { @Nullable public ItemStack getItem() { - return null; // Override + return item.clone(); + } + + protected ItemStack generateItemStack(ConfigurationNode config) { + try { + ItemStack item = ItemSerializer.INSTANCE.deserialize(ItemStack.class, config); + if (item == null) { + MessagesUtil.sendDebugMessages("Unable to create item for " + getId(), Level.SEVERE); + return new ItemStack(Material.AIR); + } + return item; + } catch (SerializationException e) { + MessagesUtil.sendDebugMessages("Fatal error encountered for " + getId() + " regarding Serialization of item", Level.SEVERE); + throw new RuntimeException(e); + } } } diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/types/CosmeticArmorType.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/types/CosmeticArmorType.java index 9acf73db..1cc20086 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/types/CosmeticArmorType.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/types/CosmeticArmorType.java @@ -19,13 +19,11 @@ import java.util.logging.Level; public class CosmeticArmorType extends Cosmetic { - private ItemStack itemStack; private EquipmentSlot equipSlot; public CosmeticArmorType(String id, ConfigurationNode config) { super(id, config); - this.itemStack = generateItemStack(config.node("item")); this.equipSlot = InventoryUtils.getEquipmentSlot(getSlot()); } @@ -35,26 +33,9 @@ public class CosmeticArmorType extends Cosmetic { PacketManager.equipmentSlotUpdate(player, getSlot(), PlayerUtils.getNearbyPlayers(player)); } - @Override - public ItemStack getItem() { - return this.itemStack.clone(); - } - public EquipmentSlot getEquipSlot() { return this.equipSlot; } - private ItemStack generateItemStack(ConfigurationNode config) { - try { - ItemStack item = ItemSerializer.INSTANCE.deserialize(ItemStack.class, config); - if (item == null) { - MessagesUtil.sendDebugMessages("Unable to create item for " + getId(), Level.SEVERE); - return new ItemStack(Material.AIR); - } - return item; - } catch (SerializationException e) { - MessagesUtil.sendDebugMessages("Fatal error encountered for " + getId() + " regarding Serialization of item", Level.SEVERE); - throw new RuntimeException(e); - } - } + } diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/types/CosmeticBackpackType.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/types/CosmeticBackpackType.java index 0c6cccdd..0c72d4fc 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/types/CosmeticBackpackType.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/types/CosmeticBackpackType.java @@ -17,15 +17,12 @@ import java.util.logging.Level; public class CosmeticBackpackType extends Cosmetic { - private ItemStack backpackItem; ConfigurationNode config; public CosmeticBackpackType(String id, ConfigurationNode config) { super(id, config); this.config = config; - - this.backpackItem = generateItemStack(config.node("item")); } @Override @@ -58,27 +55,4 @@ public class CosmeticBackpackType extends Cosmetic { user.getBackpackEntity().setRotation(loc.getYaw(), loc.getPitch()); user.showBackpack(); } - - @Override - public ItemStack getItem() { - if (this.backpackItem == null ) { - MessagesUtil.sendDebugMessages("Backpack item was null for " + getId()); - this.backpackItem = generateItemStack(config.node("item")); - } - return this.backpackItem.clone(); - } - - private ItemStack generateItemStack(ConfigurationNode config) { - try { - ItemStack item = ItemSerializer.INSTANCE.deserialize(ItemStack.class, config); - if (item == null) { - MessagesUtil.sendDebugMessages("Unable to create item for " + getId(), Level.SEVERE); - return new ItemStack(Material.AIR); - } - return item; - } catch (SerializationException e) { - MessagesUtil.sendDebugMessages("Fatal error encountered for " + getId() + " regarding Serialization of item", Level.SEVERE); - throw new RuntimeException(e); - } - } } diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/types/CosmeticMainhandType.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/types/CosmeticMainhandType.java index b7bb6de7..d868e510 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/types/CosmeticMainhandType.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/types/CosmeticMainhandType.java @@ -16,13 +16,8 @@ import java.util.logging.Level; public class CosmeticMainhandType extends Cosmetic { - private ItemStack itemStack; - public CosmeticMainhandType(String id, ConfigurationNode config) { super(id, config); - - this.itemStack = generateItemStack(config.node("item")); - } @Override @@ -32,23 +27,4 @@ public class CosmeticMainhandType extends Cosmetic { PacketManager.equipmentSlotUpdate(player.getEntityId(), user, getSlot(), PlayerUtils.getNearbyPlayers(player)); } - - private ItemStack generateItemStack(ConfigurationNode config) { - try { - ItemStack item = ItemSerializer.INSTANCE.deserialize(ItemStack.class, config); - if (item == null) { - MessagesUtil.sendDebugMessages("Unable to create item for " + getId(), Level.SEVERE); - return new ItemStack(Material.AIR); - } - return item; - } catch (SerializationException e) { - MessagesUtil.sendDebugMessages("Fatal error encountered for " + getId() + " regarding Serialization of item", Level.SEVERE); - throw new RuntimeException(e); - } - } - - @Override - public ItemStack getItem() { - return itemStack.clone(); - } }