9
0
mirror of https://github.com/HibiscusMC/HMCCosmetics.git synced 2025-12-31 21:06:38 +00:00

Merge pull request #60 from HibiscusMC/modelengine_backpack

Model Engine Backpacks
This commit is contained in:
LoJoSho
2023-02-20 14:17:13 -06:00
committed by GitHub
2 changed files with 25 additions and 2 deletions

View File

@@ -10,18 +10,20 @@ 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
public void update(CosmeticUser user) {
Player player = Bukkit.getPlayer(user.getUniqueId());
Location loc = player.getLocation().clone();
Location loc = player.getLocation().clone().add(0, 2, 0);
if (user.isInWardrobe()) return;
@@ -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");
}