From 6d9325ed1892f1084a9c464a412dba1b32002c9f Mon Sep 17 00:00:00 2001 From: LoJoSho Date: Mon, 14 Aug 2023 12:03:31 -0500 Subject: [PATCH] feat: add ability to define height of first person backpacks --- .../cosmetic/types/CosmeticBackpackType.java | 9 +++++---- .../hibiscusmc/hmccosmetics/user/CosmeticUser.java | 2 +- .../user/manager/UserBackpackManager.java | 11 ++++------- 3 files changed, 10 insertions(+), 12 deletions(-) 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 6912facb..49ad4c7d 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 @@ -6,6 +6,7 @@ import com.hibiscusmc.hmccosmetics.user.CosmeticUser; import com.hibiscusmc.hmccosmetics.user.manager.UserBackpackManager; import com.hibiscusmc.hmccosmetics.util.MessagesUtil; import com.hibiscusmc.hmccosmetics.util.packets.PacketManager; +import lombok.Getter; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -23,7 +24,10 @@ import java.util.logging.Level; public class CosmeticBackpackType extends Cosmetic { + @Getter private final String modelName; + @Getter + private int height = -1; private ItemStack firstPersonBackpack; public CosmeticBackpackType(String id, ConfigurationNode config) { @@ -33,6 +37,7 @@ public class CosmeticBackpackType extends Cosmetic { if (!config.node("firstperson-item").virtual()) { this.firstPersonBackpack = generateItemStack(config.node("firstperson-item")); + this.height = config.node("height").getInt(5); } } @@ -82,10 +87,6 @@ public class CosmeticBackpackType extends Cosmetic { user.getUserBackpackManager().showBackpack(); } - public String getModelName() { - return modelName; - } - public boolean isFirstPersonCompadible() { return firstPersonBackpack != null; } 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 dd8618ff..758c3b83 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java @@ -347,7 +347,7 @@ public class CosmeticUser { public void spawnBackpack(CosmeticBackpackType cosmeticBackpackType) { if (this.userBackpackManager != null) return; - this.userBackpackManager = new UserBackpackManager(this, cosmeticBackpackType.isFirstPersonCompadible()); + this.userBackpackManager = new UserBackpackManager(this); userBackpackManager.spawnBackpack(cosmeticBackpackType); } diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserBackpackManager.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserBackpackManager.java index e4ee6007..f7db7479 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserBackpackManager.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserBackpackManager.java @@ -10,6 +10,7 @@ import com.hibiscusmc.hmccosmetics.util.packets.PacketManager; import com.ticxo.modelengine.api.ModelEngineAPI; import com.ticxo.modelengine.api.model.ActiveModel; import com.ticxo.modelengine.api.model.ModeledEntity; +import lombok.Getter; import org.bukkit.Material; import org.bukkit.entity.ArmorStand; import org.bukkit.entity.Entity; @@ -30,13 +31,12 @@ public class UserBackpackManager { private ArmorStand invisibleArmorStand; private ArrayList particleCloud = new ArrayList<>(); private final CosmeticUser user; - private boolean firstPerson; + @Getter private UserBackpackCloudManager cloudManager; - public UserBackpackManager(CosmeticUser user, boolean firstPersonView) { + public UserBackpackManager(CosmeticUser user) { this.user = user; this.hideBackpack = false; - this.firstPerson = firstPersonView; this.cloudManager = new UserBackpackCloudManager(user.getUniqueId()); } @@ -83,7 +83,7 @@ public class UserBackpackManager { if (user.getPlayer() != null) owner.add(user.getPlayer()); if (cosmeticBackpackType.isFirstPersonCompadible()) { - for (int i = particleCloud.size(); i < 5; i++) { + for (int i = particleCloud.size(); i < cosmeticBackpackType.getHeight(); i++) { int entityId = NMSHandlers.getHandler().getNextEntityId(); PacketManager.sendEntitySpawnPacket(user.getEntity().getLocation(), entityId, EntityType.AREA_EFFECT_CLOUD, UUID.randomUUID()); PacketManager.sendCloudEffect(entityId, PacketManager.getViewers(user.getEntity().getLocation())); @@ -159,7 +159,4 @@ public class UserBackpackManager { getArmorStand().getEquipment().setHelmet(item); } - public UserBackpackCloudManager getCloudManager() { - return cloudManager; - } }