From 617df48cc21ca9f7051ab496929a7bee76ef07c7 Mon Sep 17 00:00:00 2001 From: LoJoSho Date: Mon, 20 Nov 2023 16:09:52 -0600 Subject: [PATCH] feat: add amount placeholder, resolves #127 --- .../placeholders/HMCPlaceholderExpansion.java | 22 +++++++++++++++++++ common/src/main/resources/translations.yml | 3 +++ 2 files changed, 25 insertions(+) diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/hooks/placeholders/HMCPlaceholderExpansion.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/hooks/placeholders/HMCPlaceholderExpansion.java index 83eb7b95..43f63b90 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/hooks/placeholders/HMCPlaceholderExpansion.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/hooks/placeholders/HMCPlaceholderExpansion.java @@ -145,6 +145,28 @@ public class HMCPlaceholderExpansion extends PlaceholderExpansion { if (equippedCosmetic == null) return TranslationUtil.getTranslation("equipped-cosmetic", "false"); return TranslationUtil.getTranslation("equipped-cosmetic", String.valueOf(cosmetic.getId().equals(equippedCosmetic.getId()))); } + // %hmccosmetics_amount_balloon_unlocked% + case "amount": + if (placeholderArgs.size() >= 2) { + String args1 = placeholderArgs.get(1).toUpperCase(); // changes offhand to OFFHAND + + if (!EnumUtils.isValidEnum(CosmeticSlot.class, args1)) return null; + + CosmeticSlot slot = CosmeticSlot.valueOf(args1); + int amount = 0; + boolean checkUnlocked = false; + if (placeholderArgs.size() >= 3) if (placeholderArgs.get(2).equalsIgnoreCase("unlocked")) checkUnlocked = true; + + for (Cosmetic cosmetic : Cosmetics.values()) { + if (cosmetic.getSlot() != slot) continue; + if (checkUnlocked && !user.canEquipCosmetic(cosmetic)) continue; + amount += 1; + } + return TranslationUtil.getTranslation("amount-cosmetic", String.valueOf(amount)); + + } else { + return TranslationUtil.getTranslation("amount-cosmetic", String.valueOf(Cosmetics.values().size())); + } case "wardrobe-enabled": return TranslationUtil.getTranslation("in-wardrobe", String.valueOf(user.isInWardrobe())); } diff --git a/common/src/main/resources/translations.yml b/common/src/main/resources/translations.yml index 5429c173..f021016c 100644 --- a/common/src/main/resources/translations.yml +++ b/common/src/main/resources/translations.yml @@ -16,3 +16,6 @@ using-cosmetic: current-cosmetic: no-cosmetic: "No Cosmetic" none: "none" +amount-cosmetic: + 1: "1" + 10: "10"