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:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user