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 6e1a7c62..9b54727d 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/Cosmetic.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/cosmetic/Cosmetic.java @@ -2,6 +2,8 @@ package com.hibiscusmc.hmccosmetics.cosmetic; import com.hibiscusmc.hmccosmetics.user.CosmeticUser; import com.hibiscusmc.hmccosmetics.util.MessagesUtil; +import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.Nullable; import org.spongepowered.configurate.ConfigurationNode; public class Cosmetic { @@ -9,7 +11,6 @@ public class Cosmetic { private String id; private String permission; private CosmeticSlot slot; - private boolean equipable; // This simply means if a player can put it on their body. private boolean dyable; protected Cosmetic(String id, ConfigurationNode config) { @@ -18,7 +19,6 @@ public class Cosmetic { MessagesUtil.sendDebugMessages("Slot: " + config.node("slot").getString()); setSlot(CosmeticSlot.valueOf(config.node("slot").getString())); - setEquipable(false); setDyable(config.node("dyeable").getBoolean(false)); MessagesUtil.sendDebugMessages("Dyeable " + dyable); @@ -53,14 +53,6 @@ public class Cosmetic { this.id = id; } - public void setEquipable(boolean equipable) { - this.equipable = equipable; - } - - public boolean isEquipable() { - return equipable; - } - public void setDyable(boolean dyable) { this.dyable = dyable; } @@ -73,4 +65,9 @@ public class Cosmetic { public void update(CosmeticUser user) { // Override } + + @Nullable + public ItemStack getItem() { + return null; // Override + } } 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 a397a10e..9acf73db 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 @@ -27,8 +27,6 @@ public class CosmeticArmorType extends Cosmetic { this.itemStack = generateItemStack(config.node("item")); this.equipSlot = InventoryUtils.getEquipmentSlot(getSlot()); - - setEquipable(true); } @Override @@ -37,7 +35,8 @@ public class CosmeticArmorType extends Cosmetic { PacketManager.equipmentSlotUpdate(player, getSlot(), PlayerUtils.getNearbyPlayers(player)); } - public ItemStack getCosmeticItem() { + @Override + public ItemStack getItem() { return this.itemStack.clone(); } 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 3f01de7b..62ff3031 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 @@ -4,6 +4,7 @@ import com.hibiscusmc.hmccosmetics.config.serializer.ItemSerializer; import com.hibiscusmc.hmccosmetics.cosmetic.Cosmetic; import com.hibiscusmc.hmccosmetics.user.CosmeticUser; import com.hibiscusmc.hmccosmetics.util.MessagesUtil; +import com.hibiscusmc.hmccosmetics.util.packets.PacketManager; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -56,7 +57,16 @@ public class CosmeticBackpackType extends Cosmetic { } - public ItemStack getBackpackItem() { + public void rotateEntity(int entityId, Location location) { + //PacketManager.sendRotationPacket(entityId, location, true); + } + + public void moveEntity(int entityId, Location location) { + //PacketManager.sendTeleportPacket(); + } + + @Override + public ItemStack getItem() { if (this.backpackItem == null ) { MessagesUtil.sendDebugMessages("Backpack item was null for " + getId()); this.backpackItem = generateItemStack(config.node("item")); 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 fcd3d493..b7bb6de7 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 @@ -23,7 +23,6 @@ public class CosmeticMainhandType extends Cosmetic { this.itemStack = generateItemStack(config.node("item")); - setEquipable(true); } @Override @@ -48,7 +47,8 @@ public class CosmeticMainhandType extends Cosmetic { } } - public ItemStack getItemStack() { - return itemStack; + @Override + public ItemStack getItem() { + return itemStack.clone(); } } diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java index b389ccdb..ce74f5e9 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java @@ -149,19 +149,8 @@ public class CosmeticUser { if (hideCosmetics) { return getPlayer().getInventory().getItem(InventoryUtils.getEquipmentSlot(cosmetic.getSlot())); } - if (cosmetic instanceof CosmeticArmorType) { - CosmeticArmorType cosmetic1 = (CosmeticArmorType) cosmetic; - item = cosmetic1.getCosmeticItem(); - MessagesUtil.sendDebugMessages("GetUserCosemticUser Armor"); - } - if (cosmetic instanceof CosmeticMainhandType) { - CosmeticMainhandType cosmetic1 = (CosmeticMainhandType) cosmetic; - item = cosmetic1.getItemStack(); - } - if (cosmetic instanceof CosmeticBackpackType) { - CosmeticBackpackType cosmetic1 = (CosmeticBackpackType) cosmetic; - item = cosmetic1.getBackpackItem(); - MessagesUtil.sendDebugMessages("GetUserCosemticUser Backpack"); + if (cosmetic instanceof CosmeticArmorType || cosmetic instanceof CosmeticMainhandType || cosmetic instanceof CosmeticBackpackType) { + item = cosmetic.getItem(); } if (cosmetic instanceof CosmeticBalloonType) { item = new ItemStack(Material.LEATHER_HORSE_ARMOR);