From f5105200de862854c5586fa0b217f450a635d383 Mon Sep 17 00:00:00 2001 From: LoJoSho Date: Sat, 10 Jun 2023 15:17:11 -0500 Subject: [PATCH] fix: unchecked wardrobes not unapplying --- .../hibiscusmc/hmccosmetics/user/CosmeticUser.java | 4 +++- .../user/manager/UserWardrobeManager.java | 14 +++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java index 96a96f6d..fcc51ce5 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java @@ -374,7 +374,9 @@ public class CosmeticUser { public boolean canEquipCosmetic(Cosmetic cosmetic) { if (!cosmetic.requiresPermission()) return true; - if (isInWardrobe() && WardrobeSettings.isTryCosmeticsInWardrobe()) return true; + if (isInWardrobe()) { + if (WardrobeSettings.isTryCosmeticsInWardrobe() && userWardrobeManager.getWardrobeStatus().equals(UserWardrobeManager.WardrobeStatus.RUNNING)) return true; + } return getPlayer().hasPermission(cosmetic.getPermission()); } diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserWardrobeManager.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserWardrobeManager.java index 177b2b3f..fd7be041 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserWardrobeManager.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/manager/UserWardrobeManager.java @@ -168,6 +168,15 @@ public class UserWardrobeManager { Runnable run = () -> { this.active = false; + // For Wardrobe Temp Cosmetics + for (Cosmetic cosmetic : user.getCosmetics()) { + MessagesUtil.sendDebugMessages("Checking... " + cosmetic.getId()); + if (!user.canEquipCosmetic(cosmetic)) { + MessagesUtil.sendDebugMessages("Unable to keep " + cosmetic.getId()); + user.removeCosmeticSlot(cosmetic.getSlot()); + } + } + // NPC if (user.hasCosmeticInSlot(CosmeticSlot.BALLOON)) user.getBalloonManager().sendRemoveLeashPacket(); PacketManager.sendEntityDestroyPacket(NPC_ID, viewer); // Success @@ -213,11 +222,6 @@ public class UserWardrobeManager { target.hideBossBar(bossBar); } - // For Wardrobe Temp Cosmetics - for (Cosmetic cosmetic : user.getCosmetics()) { - if (!user.canEquipCosmetic(cosmetic)) user.removeCosmeticSlot(cosmetic.getSlot()); - } - user.updateCosmetic(); }; run.run();