mirror of
https://github.com/HibiscusMC/HMCCosmetics.git
synced 2025-12-29 11:59:21 +00:00
Complete overhaul of hooks
This commit is contained in:
@@ -12,8 +12,8 @@ import com.hibiscusmc.hmccosmetics.cosmetic.Cosmetic;
|
||||
import com.hibiscusmc.hmccosmetics.cosmetic.Cosmetics;
|
||||
import com.hibiscusmc.hmccosmetics.database.Database;
|
||||
import com.hibiscusmc.hmccosmetics.gui.Menus;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.PAPIHook;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.items.ItemHooks;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.Hooks;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.placeholders.HMCPlaceholderExpansion;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.worldguard.WGHook;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.worldguard.WGListener;
|
||||
import com.hibiscusmc.hmccosmetics.listener.PlayerConnectionListener;
|
||||
@@ -26,7 +26,6 @@ import com.jeff_media.updatechecker.UpdateChecker;
|
||||
import org.bstats.bukkit.Metrics;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.command.CommandSender;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.permissions.Permission;
|
||||
@@ -105,11 +104,6 @@ public final class HMCCosmeticsPlugin extends JavaPlugin {
|
||||
// Database
|
||||
new Database();
|
||||
|
||||
// PAPI
|
||||
if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) {
|
||||
new PAPIHook().register();
|
||||
}
|
||||
|
||||
// ModelEngine
|
||||
if (Bukkit.getPluginManager().getPlugin("ModelEngine") != null) {
|
||||
hasModelEngine = true;
|
||||
@@ -197,8 +191,8 @@ public final class HMCCosmeticsPlugin extends JavaPlugin {
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
|
||||
// ItemHooks
|
||||
ItemHooks.setup();
|
||||
// Misc Hooks setup (like items)
|
||||
Hooks.setup();
|
||||
|
||||
// Cosmetics setup
|
||||
Cosmetics.setup();
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.hibiscusmc.hmccosmetics.config.serializer;
|
||||
|
||||
import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.items.ItemHooks;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.Hooks;
|
||||
import com.hibiscusmc.hmccosmetics.util.MessagesUtil;
|
||||
import com.hibiscusmc.hmccosmetics.util.ServerUtils;
|
||||
import com.hibiscusmc.hmccosmetics.util.builder.ColorBuilder;
|
||||
@@ -74,7 +74,7 @@ public class ItemSerializer implements TypeSerializer<ItemStack> {
|
||||
|
||||
String material = materialNode.getString();
|
||||
|
||||
ItemStack item = ItemHooks.getItem(material);
|
||||
ItemStack item = Hooks.getItem(material);
|
||||
if (item == null) {
|
||||
HMCCosmeticsPlugin.getInstance().getLogger().severe("Invalid Material -> " + material);
|
||||
return new ItemStack(Material.AIR);
|
||||
|
||||
@@ -5,22 +5,18 @@ import com.hibiscusmc.hmccosmetics.api.PlayerMenuOpenEvent;
|
||||
import com.hibiscusmc.hmccosmetics.config.serializer.ItemSerializer;
|
||||
import com.hibiscusmc.hmccosmetics.gui.type.Type;
|
||||
import com.hibiscusmc.hmccosmetics.gui.type.Types;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.PAPIHook;
|
||||
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
|
||||
import com.hibiscusmc.hmccosmetics.user.CosmeticUsers;
|
||||
import com.hibiscusmc.hmccosmetics.util.MessagesUtil;
|
||||
import com.hibiscusmc.hmccosmetics.util.misc.Adventure;
|
||||
import com.hibiscusmc.hmccosmetics.util.misc.Placeholder;
|
||||
import dev.triumphteam.gui.builder.item.ItemBuilder;
|
||||
import dev.triumphteam.gui.guis.Gui;
|
||||
import dev.triumphteam.gui.guis.GuiItem;
|
||||
import me.clip.placeholderapi.PlaceholderAPI;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
import org.bukkit.inventory.meta.ItemMeta;
|
||||
import org.spongepowered.configurate.ConfigurationNode;
|
||||
import org.spongepowered.configurate.serialize.SerializationException;
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import com.hibiscusmc.hmccosmetics.cosmetic.types.CosmeticArmorType;
|
||||
import com.hibiscusmc.hmccosmetics.gui.action.Actions;
|
||||
import com.hibiscusmc.hmccosmetics.gui.special.DyeMenu;
|
||||
import com.hibiscusmc.hmccosmetics.gui.type.Type;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.PAPIHook;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.Hooks;
|
||||
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
|
||||
import com.hibiscusmc.hmccosmetics.util.MessagesUtil;
|
||||
import com.hibiscusmc.hmccosmetics.util.misc.StringUtils;
|
||||
@@ -123,11 +123,15 @@ public class TypeCosmetic extends Type {
|
||||
lockedName = StringUtils.parseStringToString(Utils.replaceIfNull(itemConfig.node("locked-name").getString(), ""));
|
||||
}
|
||||
|
||||
itemMeta.setDisplayName(PlaceholderAPI.setPlaceholders(user.getPlayer(), lockedName));
|
||||
if (Hooks.isActiveHook("PlaceHolderAPI")) {
|
||||
lockedName = PlaceholderAPI.setPlaceholders(user.getPlayer(), lockedName);
|
||||
}
|
||||
itemMeta.setDisplayName(lockedName);
|
||||
if (itemMeta.hasLore()) {
|
||||
itemMeta.getLore().clear();
|
||||
for (String loreLine : lockedLore) {
|
||||
processedLore.add(PlaceholderAPI.setPlaceholders(user.getPlayer(), loreLine));
|
||||
if (Hooks.isActiveHook("PlaceHolderAPI")) loreLine = PlaceholderAPI.setPlaceholders(user.getPlayer(), loreLine);
|
||||
processedLore.add(loreLine);
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
@@ -142,11 +146,11 @@ public class TypeCosmetic extends Type {
|
||||
private ItemMeta processLoreLines(CosmeticUser user, ItemMeta itemMeta) {
|
||||
List<String> processedLore = new ArrayList<>();
|
||||
|
||||
if (PAPIHook.isPAPIEnabled()) {
|
||||
if (itemMeta.hasLore()) {
|
||||
for (String loreLine : itemMeta.getLore()) {
|
||||
processedLore.add(PlaceholderAPI.setPlaceholders(user.getPlayer(), loreLine));
|
||||
}
|
||||
if (itemMeta.hasLore()) {
|
||||
for (String loreLine : itemMeta.getLore()) {
|
||||
if (Hooks.isActiveHook("PlaceholderAPI"))
|
||||
loreLine = PlaceholderAPI.setPlaceholders(user.getPlayer(), loreLine);
|
||||
processedLore.add(loreLine);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,7 +2,8 @@ package com.hibiscusmc.hmccosmetics.gui.type.types;
|
||||
|
||||
import com.hibiscusmc.hmccosmetics.gui.action.Actions;
|
||||
import com.hibiscusmc.hmccosmetics.gui.type.Type;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.PAPIHook;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.Hooks;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.placeholders.HMCPlaceholderExpansion;
|
||||
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
|
||||
import me.clip.placeholderapi.PlaceholderAPI;
|
||||
import org.bukkit.event.inventory.ClickType;
|
||||
@@ -55,11 +56,11 @@ public class TypeEmpty extends Type {
|
||||
public ItemMeta setLore(CosmeticUser user, ConfigurationNode config, ItemMeta itemMeta) {
|
||||
List<String> processedLore = new ArrayList<>();
|
||||
|
||||
if (PAPIHook.isPAPIEnabled()) {
|
||||
if (itemMeta.hasLore()) {
|
||||
for (String loreLine : itemMeta.getLore()) {
|
||||
processedLore.add(PlaceholderAPI.setPlaceholders(user.getPlayer(), loreLine));
|
||||
}
|
||||
if (itemMeta.hasLore()) {
|
||||
for (String loreLine : itemMeta.getLore()) {
|
||||
if (Hooks.isActiveHook("PlaceholderAPI"))
|
||||
loreLine = PlaceholderAPI.setPlaceholders(user.getPlayer(), loreLine);
|
||||
processedLore.add(loreLine);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,20 +1,25 @@
|
||||
package com.hibiscusmc.hmccosmetics.hooks.items;
|
||||
package com.hibiscusmc.hmccosmetics.hooks;
|
||||
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class ItemHook implements Listener {
|
||||
public class Hook implements Listener {
|
||||
|
||||
private String id;
|
||||
private boolean active;
|
||||
private boolean itemHook;
|
||||
|
||||
public ItemHook(String id) {
|
||||
public Hook(String id) {
|
||||
this.id = id;
|
||||
active = false;
|
||||
ItemHooks.addItemHook(this);
|
||||
Hooks.addHook(this);
|
||||
}
|
||||
|
||||
public ItemStack get(String itemid) {
|
||||
public void load() {
|
||||
// Override
|
||||
}
|
||||
|
||||
public ItemStack getItem(String itemid) {
|
||||
return null;
|
||||
// Override
|
||||
}
|
||||
@@ -30,4 +35,12 @@ public class ItemHook implements Listener {
|
||||
public boolean getActive() {
|
||||
return this.active;
|
||||
}
|
||||
|
||||
public void setEnabledItemHook(boolean enabled) {
|
||||
itemHook = enabled;
|
||||
}
|
||||
|
||||
public boolean hasEnabledItemHook() {
|
||||
return itemHook;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
package com.hibiscusmc.hmccosmetics.hooks;
|
||||
|
||||
import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.items.*;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.placeholders.HookPlaceholderAPI;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public class Hooks {
|
||||
|
||||
private static HashMap<String, Hook> hooks = new HashMap<>();
|
||||
private static HookOraxen ORAXEN_HOOK = new HookOraxen();
|
||||
private static HookItemAdder ITEMADDER_HOOK = new HookItemAdder();
|
||||
private static HookMythic MYTHIC_HOOK = new HookMythic();
|
||||
private static HookHMCCosmetics HMCCOSMETIC_HOOK = new HookHMCCosmetics();
|
||||
private static HookPlaceholderAPI PAPI_HOOK = new HookPlaceholderAPI();
|
||||
|
||||
public static Hook getHook(String id) {
|
||||
return hooks.get(id.toLowerCase());
|
||||
}
|
||||
|
||||
public static boolean isItemHook(String id) {
|
||||
return hooks.containsKey(id.toLowerCase());
|
||||
}
|
||||
|
||||
public static void addHook(Hook hook) {
|
||||
hooks.put(hook.getId().toLowerCase(), hook);
|
||||
}
|
||||
|
||||
public static void setup() {
|
||||
for (Hook hook : hooks.values()) {
|
||||
if (Bukkit.getPluginManager().getPlugin(hook.getId()) != null) {
|
||||
HMCCosmeticsPlugin.getInstance().getServer().getPluginManager().registerEvents(hook, HMCCosmeticsPlugin.getInstance());
|
||||
hook.setActive(true);
|
||||
hook.load();
|
||||
HMCCosmeticsPlugin.getInstance().getLogger().info("Successfully hooked into " + hook.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static ItemStack getItem(String raw) {
|
||||
if (!raw.contains(":")) {
|
||||
Material mat = Material.getMaterial(raw.toUpperCase());
|
||||
if (mat == null) return null;
|
||||
return new ItemStack(mat);
|
||||
}
|
||||
// Ex. Oraxen:BigSword
|
||||
// split[0] is the plugin name
|
||||
// split[1] is the item name
|
||||
String[] split = raw.split(":", 2);
|
||||
|
||||
if (!isItemHook(split[0])) return null;
|
||||
Hook hook = getHook(split[0]);
|
||||
if (!hook.hasEnabledItemHook()) return null;
|
||||
if (!hook.getActive()) return null;
|
||||
ItemStack item = hook.getItem(split[1]);
|
||||
return item;
|
||||
}
|
||||
|
||||
public static boolean isActiveHook(String id) {
|
||||
if (!hooks.containsKey(getHook(id))) return false;
|
||||
return hooks.get(getHook(id)).getActive();
|
||||
}
|
||||
}
|
||||
@@ -2,17 +2,19 @@ package com.hibiscusmc.hmccosmetics.hooks.items;
|
||||
|
||||
import com.hibiscusmc.hmccosmetics.cosmetic.Cosmetic;
|
||||
import com.hibiscusmc.hmccosmetics.cosmetic.Cosmetics;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.Hook;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class HMCCosmeticsHook extends ItemHook implements Listener {
|
||||
public class HookHMCCosmetics extends Hook implements Listener {
|
||||
|
||||
public HMCCosmeticsHook() {
|
||||
public HookHMCCosmetics() {
|
||||
super("HMCCosmetics");
|
||||
setEnabledItemHook(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack get(String itemid) {
|
||||
public ItemStack getItem(String itemid) {
|
||||
Cosmetic cosmetic = Cosmetics.getCosmetic(itemid);
|
||||
if (cosmetic == null) return null;
|
||||
return cosmetic.getItem();
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.hibiscusmc.hmccosmetics.hooks.items;
|
||||
|
||||
import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.Hook;
|
||||
import dev.lone.itemsadder.api.CustomStack;
|
||||
import dev.lone.itemsadder.api.Events.ItemsAdderLoadDataEvent;
|
||||
import org.bukkit.Material;
|
||||
@@ -8,18 +9,19 @@ import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class ItemAdderHook extends ItemHook implements Listener {
|
||||
public class HookItemAdder extends Hook implements Listener {
|
||||
|
||||
// I hate IA, this overcomplicate stuff is so unneeded if it just did its stuff when its needed.
|
||||
|
||||
private boolean enabled = false;
|
||||
|
||||
public ItemAdderHook() {
|
||||
public HookItemAdder() {
|
||||
super("itemsadder");
|
||||
setEnabledItemHook(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack get(String itemid) {
|
||||
public ItemStack getItem(String itemid) {
|
||||
if (enabled) {
|
||||
CustomStack stack = CustomStack.getInstance(itemid);
|
||||
if (stack == null) return null;
|
||||
@@ -1,18 +1,20 @@
|
||||
package com.hibiscusmc.hmccosmetics.hooks.items;
|
||||
|
||||
import com.hibiscusmc.hmccosmetics.hooks.Hook;
|
||||
import com.mineinabyss.geary.prefabs.PrefabKey;
|
||||
import com.mineinabyss.looty.LootyFactory;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class LootyHook extends ItemHook implements Listener {
|
||||
public class HookLooty extends Hook implements Listener {
|
||||
|
||||
public LootyHook() {
|
||||
public HookLooty() {
|
||||
super("looty");
|
||||
setEnabledItemHook(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack get(String itemid) {
|
||||
public ItemStack getItem(String itemid) {
|
||||
PrefabKey prefabKey = PrefabKey.Companion.ofOrNull(itemid);
|
||||
if (prefabKey == null) return null;
|
||||
return LootyFactory.INSTANCE.createFromPrefab(prefabKey);
|
||||
@@ -1,16 +1,18 @@
|
||||
package com.hibiscusmc.hmccosmetics.hooks.items;
|
||||
|
||||
import com.hibiscusmc.hmccosmetics.hooks.Hook;
|
||||
import io.lumine.mythic.bukkit.MythicBukkit;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class MythicHook extends ItemHook implements Listener {
|
||||
public MythicHook() {
|
||||
public class HookMythic extends Hook implements Listener {
|
||||
public HookMythic() {
|
||||
super("mythicmobs");
|
||||
setEnabledItemHook(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack get(String itemid) {
|
||||
public ItemStack getItem(String itemid) {
|
||||
return MythicBukkit.inst().getItemManager().getItemStack(itemid);
|
||||
}
|
||||
}
|
||||
@@ -1,18 +1,20 @@
|
||||
package com.hibiscusmc.hmccosmetics.hooks.items;
|
||||
|
||||
import com.hibiscusmc.hmccosmetics.hooks.Hook;
|
||||
import io.th0rgal.oraxen.api.OraxenItems;
|
||||
import io.th0rgal.oraxen.items.ItemBuilder;
|
||||
import org.bukkit.event.Listener;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
public class OraxenHook extends ItemHook implements Listener {
|
||||
public class HookOraxen extends Hook implements Listener {
|
||||
|
||||
public OraxenHook() {
|
||||
public HookOraxen() {
|
||||
super("oraxen");
|
||||
setEnabledItemHook(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ItemStack get(String itemid) {
|
||||
public ItemStack getItem(String itemid) {
|
||||
ItemBuilder builder = OraxenItems.getItemById(itemid);
|
||||
if (builder == null) return null;
|
||||
return builder.build();
|
||||
@@ -1,58 +0,0 @@
|
||||
package com.hibiscusmc.hmccosmetics.hooks.items;
|
||||
|
||||
import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Material;
|
||||
import org.bukkit.inventory.ItemStack;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public class ItemHooks {
|
||||
|
||||
private static HashMap<String, ItemHook> itemHooks = new HashMap<>();
|
||||
private static OraxenHook ORAXEN_HOOK = new OraxenHook();
|
||||
private static LootyHook LOOTY_HOOK = new LootyHook();
|
||||
private static ItemAdderHook ITEMADDER_HOOK = new ItemAdderHook();
|
||||
private static MythicHook MYTHIC_HOOK = new MythicHook();
|
||||
private static HMCCosmeticsHook HMCCOSMETIC_HOOK = new HMCCosmeticsHook();
|
||||
|
||||
public static ItemHook getItemHook(String id) {
|
||||
return itemHooks.get(id.toLowerCase());
|
||||
}
|
||||
|
||||
public static boolean isItemHook(String id) {
|
||||
return itemHooks.containsKey(id.toLowerCase());
|
||||
}
|
||||
|
||||
public static void addItemHook(ItemHook hook) {
|
||||
itemHooks.put(hook.getId().toLowerCase(), hook);
|
||||
}
|
||||
|
||||
public static void setup() {
|
||||
for (ItemHook itemHook : itemHooks.values()) {
|
||||
if (Bukkit.getPluginManager().getPlugin(itemHook.getId()) != null) {
|
||||
HMCCosmeticsPlugin.getInstance().getServer().getPluginManager().registerEvents(itemHook, HMCCosmeticsPlugin.getInstance());
|
||||
itemHook.setActive(true);
|
||||
HMCCosmeticsPlugin.getInstance().getLogger().info("Successfully hooked into " + itemHook.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static ItemStack getItem(String raw) {
|
||||
if (!raw.contains(":")) {
|
||||
Material mat = Material.getMaterial(raw.toUpperCase());
|
||||
if (mat == null) return null;
|
||||
return new ItemStack(mat);
|
||||
}
|
||||
// Ex. Oraxen:BigSword
|
||||
// split[0] is the plugin name
|
||||
// split[1] is the item name
|
||||
String[] split = raw.split(":", 2);
|
||||
|
||||
if (!isItemHook(split[0])) return null;
|
||||
ItemHook itemHook = getItemHook(split[0]);
|
||||
if (!itemHook.getActive()) return null;
|
||||
ItemStack item = itemHook.get(split[1]);
|
||||
return item;
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
package com.hibiscusmc.hmccosmetics.hooks;
|
||||
package com.hibiscusmc.hmccosmetics.hooks.placeholders;
|
||||
|
||||
import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin;
|
||||
import com.hibiscusmc.hmccosmetics.cosmetic.Cosmetic;
|
||||
@@ -16,11 +16,11 @@ import org.jetbrains.annotations.NotNull;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class PAPIHook extends PlaceholderExpansion {
|
||||
public class HMCPlaceholderExpansion extends PlaceholderExpansion {
|
||||
|
||||
private static boolean papiEnabled = false;
|
||||
|
||||
public PAPIHook() {
|
||||
public HMCPlaceholderExpansion() {
|
||||
papiEnabled = true;
|
||||
}
|
||||
|
||||
@@ -66,6 +66,7 @@ public class PAPIHook extends PlaceholderExpansion {
|
||||
if (placeholderArgs.get(1) != null) {
|
||||
CosmeticSlot slot = CosmeticSlot.valueOf(placeholderArgs.get(1).toUpperCase());
|
||||
if (slot == null) return null;
|
||||
if (user.getCosmetic(slot) == null) return null;
|
||||
if (placeholderArgs.size() == 2) return user.getCosmetic(slot).getId();
|
||||
switch (placeholderArgs.get(2).toLowerCase()) {
|
||||
case "material" -> {
|
||||
@@ -161,8 +162,4 @@ public class PAPIHook extends PlaceholderExpansion {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static boolean isPAPIEnabled() {
|
||||
return papiEnabled;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.hibiscusmc.hmccosmetics.hooks.placeholders;
|
||||
|
||||
import com.hibiscusmc.hmccosmetics.hooks.Hook;
|
||||
|
||||
public class HookPlaceholderAPI extends Hook {
|
||||
|
||||
public HookPlaceholderAPI() {
|
||||
super("placeholderapi");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void load() {
|
||||
new HMCPlaceholderExpansion().register();
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,8 @@ package com.hibiscusmc.hmccosmetics.util;
|
||||
import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin;
|
||||
import com.hibiscusmc.hmccosmetics.config.Settings;
|
||||
import com.hibiscusmc.hmccosmetics.config.WardrobeSettings;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.PAPIHook;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.Hooks;
|
||||
import com.hibiscusmc.hmccosmetics.hooks.placeholders.HMCPlaceholderExpansion;
|
||||
import com.hibiscusmc.hmccosmetics.user.CosmeticUser;
|
||||
import com.hibiscusmc.hmccosmetics.util.misc.Adventure;
|
||||
import me.clip.placeholderapi.PlaceholderAPI;
|
||||
@@ -95,7 +96,7 @@ public class MessagesUtil {
|
||||
if (!messages.containsKey(key)) return null;
|
||||
if (messages.get(key) == null) return null;
|
||||
String message = messages.get(key);
|
||||
if (PAPIHook.isPAPIEnabled() && player != null) message = PlaceholderAPI.setPlaceholders(player, message);
|
||||
if (Hooks.isActiveHook("PlaceholderAPI") && player != null) message = PlaceholderAPI.setPlaceholders(player, message);
|
||||
message = message.replaceAll("%prefix%", prefix);
|
||||
if (placeholders != null ) {
|
||||
return Adventure.MINI_MESSAGE.deserialize(message, placeholders);
|
||||
@@ -113,7 +114,7 @@ public class MessagesUtil {
|
||||
|
||||
public static Component processStringNoKey(Player player, String message, TagResolver placeholders) {
|
||||
message = message.replaceAll("%prefix%", prefix);
|
||||
if (PAPIHook.isPAPIEnabled() && player != null) message = PlaceholderAPI.setPlaceholders(player, message);
|
||||
if (Hooks.isActiveHook("PlaceholderAPI") && player != null) message = PlaceholderAPI.setPlaceholders(player, message);
|
||||
if (placeholders != null ) {
|
||||
return Adventure.MINI_MESSAGE.deserialize(message, placeholders);
|
||||
}
|
||||
@@ -122,7 +123,7 @@ public class MessagesUtil {
|
||||
|
||||
public static String processStringNoKeyString(Player player, String message) {
|
||||
message = message.replaceAll("%prefix%", prefix);
|
||||
if (PAPIHook.isPAPIEnabled() && player != null) message = PlaceholderAPI.setPlaceholders(player, message);
|
||||
if (Hooks.isActiveHook("PlaceholderAPI") && player != null) message = PlaceholderAPI.setPlaceholders(player, message);
|
||||
return message;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user