9
0
mirror of https://github.com/HibiscusMC/HMCCosmetics.git synced 2025-12-27 02:49:08 +00:00

feat: add ability to define height of first person backpacks

This commit is contained in:
LoJoSho
2023-08-14 12:03:31 -05:00
parent 0640b33d50
commit 6d9325ed18
3 changed files with 10 additions and 12 deletions

View File

@@ -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;
}

View File

@@ -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);
}

View File

@@ -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<Integer> 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;
}
}