mirror of
https://github.com/HibiscusMC/HMCCosmetics.git
synced 2026-01-04 15:41:45 +00:00
Players can take off armor in wardrobe
This commit is contained in:
@@ -5,6 +5,7 @@ import com.hibiscusmc.hmccosmetics.config.Settings;
|
||||
import com.hibiscusmc.hmccosmetics.config.WardrobeSettings;
|
||||
import com.hibiscusmc.hmccosmetics.cosmetic.Cosmetic;
|
||||
import com.hibiscusmc.hmccosmetics.cosmetic.CosmeticSlot;
|
||||
import com.hibiscusmc.hmccosmetics.cosmetic.Cosmetics;
|
||||
import com.hibiscusmc.hmccosmetics.cosmetic.types.CosmeticBackpackType;
|
||||
import com.hibiscusmc.hmccosmetics.cosmetic.types.CosmeticBalloonType;
|
||||
import com.hibiscusmc.hmccosmetics.entities.BalloonEntity;
|
||||
@@ -137,6 +138,18 @@ public class CosmeticUser {
|
||||
return true;
|
||||
}
|
||||
|
||||
public int amountOfCosmetics() {
|
||||
return playerCosmetics.keySet().size();
|
||||
}
|
||||
|
||||
public int amountOfCosmeticsArmor() {
|
||||
int amount = 0;
|
||||
for (Cosmetic cosmetic : Cosmetics.values()) {
|
||||
if (cosmetic.getSlot() == CosmeticSlot.BOOTS || cosmetic.getSlot() == CosmeticSlot.LEGGINGS || cosmetic.getSlot() == CosmeticSlot.CHESTPLATE || cosmetic.getSlot() == CosmeticSlot.HELMET) amount = amount + 1;
|
||||
}
|
||||
return amount;
|
||||
}
|
||||
|
||||
public void toggleWardrobe() {
|
||||
if (isInWardrobe()) {
|
||||
leaveWardrobe();
|
||||
|
||||
@@ -29,7 +29,7 @@ public class Wardrobe {
|
||||
private Location viewingLocation;
|
||||
private Location npcLocation;
|
||||
private Location exitLocation;
|
||||
private Boolean active;
|
||||
private boolean active;
|
||||
|
||||
public Wardrobe(CosmeticUser user) {
|
||||
NPC_ID = Entity.nextEntityId();
|
||||
|
||||
@@ -8,7 +8,9 @@ import com.hibiscusmc.hmccosmetics.cosmetic.CosmeticSlot;
|
||||
import com.hibiscusmc.hmccosmetics.cosmetic.types.CosmeticArmorType;
|
||||
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
|
||||
import com.hibiscusmc.hmccosmetics.user.CosmeticUsers;
|
||||
import com.hibiscusmc.hmccosmetics.util.InventoryUtils;
|
||||
import com.hibiscusmc.hmccosmetics.util.PlayerUtils;
|
||||
import com.hibiscusmc.hmccosmetics.util.ServerUtils;
|
||||
import com.hibiscusmc.hmccosmetics.util.packets.wrappers.WrapperPlayServerNamedEntitySpawn;
|
||||
import com.hibiscusmc.hmccosmetics.util.packets.wrappers.WrapperPlayServerPlayerInfo;
|
||||
import com.mojang.datafixers.util.Pair;
|
||||
@@ -18,6 +20,7 @@ import net.minecraft.network.protocol.game.ClientboundSetEquipmentPacket;
|
||||
import net.minecraft.world.entity.EquipmentSlot;
|
||||
import net.minecraft.world.item.ItemStack;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.craftbukkit.v1_19_R1.CraftEquipmentSlot;
|
||||
import org.bukkit.craftbukkit.v1_19_R1.inventory.CraftItemStack;
|
||||
import org.bukkit.entity.Entity;
|
||||
@@ -95,14 +98,26 @@ public class PacketManager extends BasePacket {
|
||||
|
||||
if (cosmeticSlot == CosmeticSlot.BACKPACK || cosmeticSlot == CosmeticSlot.BALLOON) return;
|
||||
|
||||
if (!(user.getCosmetic(cosmeticSlot) instanceof CosmeticArmorType)) return;
|
||||
if (!(user.getCosmetic(cosmeticSlot) instanceof CosmeticArmorType)) {
|
||||
|
||||
nmsSlot = CraftEquipmentSlot.getNMS(InventoryUtils.getEquipmentSlot(cosmeticSlot));
|
||||
nmsItem = CraftItemStack.asNMSCopy(new org.bukkit.inventory.ItemStack(Material.AIR));
|
||||
|
||||
Pair<EquipmentSlot, ItemStack> pair = new Pair<>(nmsSlot, nmsItem);
|
||||
|
||||
List<Pair<EquipmentSlot, ItemStack>> pairs = Collections.singletonList(pair);
|
||||
|
||||
ClientboundSetEquipmentPacket packet = new ClientboundSetEquipmentPacket(entityId, pairs);
|
||||
for (Player p : sendTo) sendPacket(p, packet);
|
||||
return;
|
||||
}
|
||||
CosmeticArmorType cosmeticArmor = (CosmeticArmorType) user.getCosmetic(cosmeticSlot);
|
||||
|
||||
// Converting EquipmentSlot and ItemStack to NMS ones.
|
||||
nmsSlot = CraftEquipmentSlot.getNMS(cosmeticArmor.getEquipSlot());
|
||||
nmsItem = CraftItemStack.asNMSCopy(cosmeticArmor.getCosmeticItem());
|
||||
|
||||
if (nmsSlot == null || nmsItem == null) return;
|
||||
if (nmsSlot == null) return;
|
||||
|
||||
Pair<EquipmentSlot, ItemStack> pair = new Pair<>(nmsSlot, nmsItem);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user