9
0
mirror of https://github.com/HibiscusMC/HMCCosmetics.git synced 2025-12-26 10:29:06 +00:00

Model Engine Backpacks

This commit is contained in:
LoJoSho
2023-02-15 16:46:03 -06:00
parent fd50cd058a
commit a01f35c53d
2 changed files with 24 additions and 1 deletions

View File

@@ -10,12 +10,14 @@ import org.spongepowered.configurate.ConfigurationNode;
public class CosmeticBackpackType extends Cosmetic {
ConfigurationNode config;
private String modelName;
private ConfigurationNode config;
public CosmeticBackpackType(String id, ConfigurationNode config) {
super(id, config);
this.config = config;
modelName = config.node("model").getString();
}
@Override
@@ -36,4 +38,8 @@ public class CosmeticBackpackType extends Cosmetic {
user.getUserBackpackManager().getArmorstand().setRotation(loc.getYaw(), loc.getPitch());
user.getUserBackpackManager().showBackpack();
}
public String getModelName() {
return modelName;
}
}

View File

@@ -1,13 +1,20 @@
package com.hibiscusmc.hmccosmetics.user.manager;
import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin;
import com.hibiscusmc.hmccosmetics.cosmetic.CosmeticSlot;
import com.hibiscusmc.hmccosmetics.cosmetic.types.CosmeticBackpackType;
import com.hibiscusmc.hmccosmetics.hooks.Hooks;
import com.hibiscusmc.hmccosmetics.nms.NMSHandlers;
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
import com.hibiscusmc.hmccosmetics.util.MessagesUtil;
import com.ticxo.modelengine.api.ModelEngineAPI;
import com.ticxo.modelengine.api.model.ActiveModel;
import com.ticxo.modelengine.api.model.ModeledEntity;
import org.bukkit.entity.ArmorStand;
import org.bukkit.inventory.ItemStack;
import java.util.logging.Level;
public class UserBackpackManager {
private boolean hideBackpack;
@@ -36,6 +43,16 @@ public class UserBackpackManager {
this.invisibleArmorstand = (ArmorStand) NMSHandlers.getHandler().spawnBackpack(user, cosmeticBackpackType);
if (cosmeticBackpackType.getModelName() != null && HMCCosmeticsPlugin.hasModelEngine()) {
if (ModelEngineAPI.api.getModelRegistry().getBlueprint(cosmeticBackpackType.getModelName()) == null) {
MessagesUtil.sendDebugMessages("Invalid Model Engine Blueprint " + cosmeticBackpackType.getModelName(), Level.SEVERE);
return;
}
ModeledEntity modeledEntity = ModelEngineAPI.getOrCreateModeledEntity(invisibleArmorstand);
ActiveModel model = ModelEngineAPI.createActiveModel(ModelEngineAPI.getBlueprint(cosmeticBackpackType.getModelName()));
model.setCanHurt(false);
modeledEntity.addModel(model, false);
}
MessagesUtil.sendDebugMessages("spawnBackpack Bukkit - Finish");
}