From c49464d4bbb7b2ea4507501863095226ad193aad Mon Sep 17 00:00:00 2001 From: LoJoSho Date: Thu, 28 Dec 2023 11:40:32 -0600 Subject: [PATCH] feat: slight hook and custom event overhaul --- build.gradle.kts | 2 ++ .../HibiscusCommonsPlugin.java | 1 - .../hibiscuscommons/HibiscusPlugin.java | 1 - .../api/events/HibiscusHookEvent.java | 31 +++++++++++++++++++ .../api/events/HibiscusHookPlayerEvent.java | 19 ++++++++++++ .../api/events/HibiscusHookReload.java | 15 +++++---- .../events/HibiscusPlayerUnVanishEvent.java | 8 ++--- .../api/events/HibiscusPlayerVanishEvent.java | 8 ++--- .../api/events/HibiscusPluginFishEvent.java | 28 +++++++++++++++++ .../lojosho/hibiscuscommons/hooks/Hook.java | 21 +++++++++++++ .../hibiscuscommons/hooks/HookFlag.java | 3 +- .../lojosho/hibiscuscommons/hooks/Hooks.java | 26 +++++++++++++++- .../hibiscuscommons/hooks/items/HookEco.java | 9 ++++++ .../hooks/items/HookItemAdder.java | 7 +++++ .../hooks/items/HookMythic.java | 13 +++++++- .../hooks/items/HookOraxen.java | 8 +++++ .../hibiscuscommons/hooks/misc/HookCMI.java | 4 +-- .../hooks/misc/HookCustomFishing.java | 26 ++++++++++++++++ .../hooks/misc/HookLibsDisguises.java | 4 +-- .../hooks/misc/HookModelEngine.java | 10 ++++++ .../hooks/misc/HookPremiumVanish.java | 4 +-- .../hooks/misc/HookSuperVanish.java | 4 +-- .../placeholders/HookPlaceholderAPI.java | 2 +- .../hibiscuscommons/nms/NMSHandlers.java | 1 - .../hibiscuscommons/util/ServerUtils.java | 1 - 25 files changed, 224 insertions(+), 32 deletions(-) create mode 100644 common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusHookEvent.java create mode 100644 common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusHookPlayerEvent.java create mode 100644 common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusPluginFishEvent.java create mode 100644 common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookCustomFishing.java diff --git a/build.gradle.kts b/build.gradle.kts index 6f5bfc6..080c445 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -78,6 +78,8 @@ allprojects { compileOnly("LibsDisguises:LibsDisguises:10.0.21") { exclude("org.spigotmc", "spigot") } + compileOnly("com.github.Xiao-MoMi:Custom-Fishing:2.0.6") + compileOnly("com.ticxo.modelengine:ModelEngine:R4.0.2") // Lombok <3 annotationProcessor("org.projectlombok:lombok:1.18.28") diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/HibiscusCommonsPlugin.java b/common/src/main/java/me/lojosho/hibiscuscommons/HibiscusCommonsPlugin.java index 901e758..3ac6afa 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/HibiscusCommonsPlugin.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/HibiscusCommonsPlugin.java @@ -4,7 +4,6 @@ import lombok.Getter; import me.lojosho.hibiscuscommons.hooks.Hooks; import me.lojosho.hibiscuscommons.nms.NMSHandlers; import me.lojosho.hibiscuscommons.util.ServerUtils; -import org.bukkit.plugin.java.JavaPlugin; public final class HibiscusCommonsPlugin extends HibiscusPlugin { diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/HibiscusPlugin.java b/common/src/main/java/me/lojosho/hibiscuscommons/HibiscusPlugin.java index 8d00c36..a1e210b 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/HibiscusPlugin.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/HibiscusPlugin.java @@ -3,7 +3,6 @@ package me.lojosho.hibiscuscommons; import com.jeff_media.updatechecker.UpdateCheckSource; import com.jeff_media.updatechecker.UpdateChecker; import lombok.Getter; -import me.lojosho.hibiscuscommons.nms.NMSHandlers; import org.bstats.bukkit.Metrics; import org.bukkit.Bukkit; import org.bukkit.plugin.Plugin; diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusHookEvent.java b/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusHookEvent.java new file mode 100644 index 0000000..cab1533 --- /dev/null +++ b/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusHookEvent.java @@ -0,0 +1,31 @@ +package me.lojosho.hibiscuscommons.api.events; + +import me.lojosho.hibiscuscommons.hooks.Hook; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; +import org.jetbrains.annotations.NotNull; + +public abstract class HibiscusHookEvent extends Event { + + private static final HandlerList handlers = new HandlerList(); + private final Hook hook; + + public HibiscusHookEvent(Hook hook) { + this.hook = hook; + } + + public Hook getHook() { + return hook; + } + + @NotNull + @Override + public HandlerList getHandlers() { + return handlers; + } + + @NotNull + public static HandlerList getHandlerList() { + return handlers; + } +} diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusHookPlayerEvent.java b/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusHookPlayerEvent.java new file mode 100644 index 0000000..97e6c85 --- /dev/null +++ b/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusHookPlayerEvent.java @@ -0,0 +1,19 @@ +package me.lojosho.hibiscuscommons.api.events; + +import me.lojosho.hibiscuscommons.hooks.Hook; +import org.bukkit.entity.Player; + +public abstract class HibiscusHookPlayerEvent extends HibiscusHookEvent { + + private final Player player; + + public HibiscusHookPlayerEvent(Hook hook, Player player) { + super(hook); + this.player = player; + } + + public Player getPlayer() { + return player; + } + +} diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusHookReload.java b/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusHookReload.java index ba742e4..9af8a96 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusHookReload.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusHookReload.java @@ -1,24 +1,18 @@ package me.lojosho.hibiscuscommons.api.events; import me.lojosho.hibiscuscommons.hooks.Hook; -import org.bukkit.event.Event; import org.bukkit.event.HandlerList; import org.jetbrains.annotations.NotNull; /** * This is called when a hook is reloaded from a plugin. This is useful for plugins like ItemsAdder, which loads items async from the main thread. */ -public class HibiscusHookReload extends Event { +public class HibiscusHookReload extends HibiscusHookEvent { private static final HandlerList handlers = new HandlerList(); - private final Hook hook; public HibiscusHookReload(Hook hook) { - this.hook = hook; - } - - public Hook getHook() { - return hook; + super(hook); } @NotNull @@ -26,4 +20,9 @@ public class HibiscusHookReload extends Event { public HandlerList getHandlers() { return handlers; } + + @NotNull + public static HandlerList getHandlerList() { + return handlers; + } } diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusPlayerUnVanishEvent.java b/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusPlayerUnVanishEvent.java index 61a54b5..227488b 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusPlayerUnVanishEvent.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusPlayerUnVanishEvent.java @@ -1,19 +1,19 @@ package me.lojosho.hibiscuscommons.api.events; +import me.lojosho.hibiscuscommons.hooks.Hook; import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; -import org.bukkit.event.player.PlayerEvent; import org.jetbrains.annotations.NotNull; -public class HibiscusPlayerUnVanishEvent extends PlayerEvent implements Cancellable { +public class HibiscusPlayerUnVanishEvent extends HibiscusHookPlayerEvent implements Cancellable { private static final HandlerList handlers = new HandlerList(); private boolean cancel = false; - public HibiscusPlayerUnVanishEvent(Player player) { - super(player); + public HibiscusPlayerUnVanishEvent(Hook hook, Player player) { + super(hook, player); } @NotNull diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusPlayerVanishEvent.java b/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusPlayerVanishEvent.java index b2012b6..c9958d1 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusPlayerVanishEvent.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusPlayerVanishEvent.java @@ -1,19 +1,19 @@ package me.lojosho.hibiscuscommons.api.events; +import me.lojosho.hibiscuscommons.hooks.Hook; import org.bukkit.entity.Player; import org.bukkit.event.Cancellable; import org.bukkit.event.HandlerList; -import org.bukkit.event.player.PlayerEvent; import org.jetbrains.annotations.NotNull; -public class HibiscusPlayerVanishEvent extends PlayerEvent implements Cancellable { +public class HibiscusPlayerVanishEvent extends HibiscusHookPlayerEvent implements Cancellable { private static final HandlerList handlers = new HandlerList(); private boolean cancel = false; - public HibiscusPlayerVanishEvent(Player player) { - super(player); + public HibiscusPlayerVanishEvent(Hook hook, Player player) { + super(hook, player); } @NotNull diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusPluginFishEvent.java b/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusPluginFishEvent.java new file mode 100644 index 0000000..f4bb969 --- /dev/null +++ b/common/src/main/java/me/lojosho/hibiscuscommons/api/events/HibiscusPluginFishEvent.java @@ -0,0 +1,28 @@ +package me.lojosho.hibiscuscommons.api.events; + +import me.lojosho.hibiscuscommons.hooks.Hook; +import org.bukkit.entity.Player; +import org.bukkit.event.HandlerList; +import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +public class HibiscusPluginFishEvent extends HibiscusHookPlayerEvent { + private static final HandlerList handlers = new HandlerList(); + private final ItemStack itemStack; + + public HibiscusPluginFishEvent(@NotNull Hook hook, @NotNull Player who, @NotNull ItemStack itemStack) { + super(hook, who); + this.itemStack = itemStack; + } + + @NotNull + @Override + public HandlerList getHandlers() { + return handlers; + } + + @NotNull + public static HandlerList getHandlerList() { + return handlers; + } +} diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/Hook.java b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/Hook.java index 4d42d2d..e4ed002 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/Hook.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/Hook.java @@ -1,5 +1,6 @@ package me.lojosho.hibiscuscommons.hooks; +import org.bukkit.entity.Entity; import org.bukkit.event.Listener; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -12,6 +13,7 @@ public abstract class Hook implements Listener { private final String id; private boolean active = false; private boolean itemHook = false; + private boolean entityHook = false; public Hook(@NotNull String id, HookFlag... flags) { this.id = id; @@ -20,6 +22,9 @@ public abstract class Hook implements Listener { case ITEM_SUPPORT: setEnabledItemHook(true); break; + case ENTITY_SUPPORT: + setEnabledEntityHook(true); + break; } } Hooks.addHook(this); @@ -90,6 +95,10 @@ public abstract class Hook implements Listener { return itemHook; } + public final boolean hasEnabledEntityHook() { + return entityHook; + } + /** * Sets whether the method {@link #getItem(String)} should return a non-null value * @param enabled true if {@link #getItem(String)} should return a non-null value, false otherwise @@ -97,4 +106,16 @@ public abstract class Hook implements Listener { public final void setEnabledItemHook(boolean enabled) { itemHook = enabled; } + + public final void setEnabledEntityHook(boolean enabled) { + entityHook = enabled; + } + + public String getItemString(@NotNull ItemStack itemStack) { + return null; + } + + public String getEntityString(@NotNull Entity entity) { + return null; + } } diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/HookFlag.java b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/HookFlag.java index 5c7cd92..168e9fb 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/HookFlag.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/HookFlag.java @@ -1,5 +1,6 @@ package me.lojosho.hibiscuscommons.hooks; public enum HookFlag { - ITEM_SUPPORT + ITEM_SUPPORT, + ENTITY_SUPPORT, } diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/Hooks.java b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/Hooks.java index 3b42098..5e79a05 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/Hooks.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/Hooks.java @@ -6,10 +6,10 @@ import me.lojosho.hibiscuscommons.HibiscusCommonsPlugin; import me.lojosho.hibiscuscommons.hooks.items.*; import me.lojosho.hibiscuscommons.hooks.misc.*; import me.lojosho.hibiscuscommons.hooks.placeholders.HookPlaceholderAPI; -import me.lojosho.hibiscuscommons.util.MessagesUtil; import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.OfflinePlayer; +import org.bukkit.entity.Entity; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -33,6 +33,8 @@ public class Hooks { private static final HookMMOItems MMO_ITEMS_HOOK = new HookMMOItems(); private static final HookEco ECO_ITEMS_HOOK = new HookEco(); private static final HookPlaceholderAPI PAPI_HOOK = new HookPlaceholderAPI(); + private static final HookCustomFishing CF_HOOK = new HookCustomFishing(); + public static Hook getHook(@NotNull String id) { return hooks.get(id.toLowerCase()); @@ -89,6 +91,28 @@ public class Hooks { return hook.getItem(split[1]); } + public static String getStringItem(ItemStack itemStack) { + for (Hook hook : hooks.values()) { + if (hook.hasEnabledItemHook()) { + String stringyItem = hook.getItemString(itemStack); + if (stringyItem == null) continue; + return hook.getId() + ":" + stringyItem; + } + } + return itemStack.getType().toString(); + } + + public static String getStringEntity(Entity entity) { + for (Hook hook : hooks.values()) { + if (Bukkit.getPluginManager().getPlugin(hook.getId()) != null && hook.hasEnabledEntityHook()) { + String stringyEntity = hook.getEntityString(entity); + if (stringyEntity != null) return hook.getId() + ":" + stringyEntity; + } + } + + return entity.getType().toString().toUpperCase(); + } + public static boolean isActiveHook(String id) { Hook hook = getHook(id); if (hook == null) return false; diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookEco.java b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookEco.java index dad3e63..01ddb37 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookEco.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookEco.java @@ -15,4 +15,13 @@ public class HookEco extends Hook { public ItemStack getItem(@NotNull String itemId) { return Items.lookup(itemId).getItem(); } + + @Override + public String getItemString(ItemStack itemStack) { + if (itemStack == null) return null; + if (!itemStack.hasItemMeta()) return null; + if (!Items.isCustomItem(itemStack)) return null; + // This should work? I'm not sure if it will return the correct key + return Items.getCustomItem(itemStack).getKey().toString(); + } } diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookItemAdder.java b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookItemAdder.java index 4bedffb..c330d2e 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookItemAdder.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookItemAdder.java @@ -45,4 +45,11 @@ public class HookItemAdder extends Hook { this.enabled = true; //HMCCosmeticsPlugin.setup(); } + + public String getItemString(ItemStack itemStack) { + if (itemStack == null) return null; + if (!itemStack.hasItemMeta()) return null; + if (CustomStack.byItemStack(itemStack) == null) return null; + return CustomStack.byItemStack(itemStack).getId(); + } } diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookMythic.java b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookMythic.java index ac74b48..a7fb53d 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookMythic.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookMythic.java @@ -1,8 +1,10 @@ package me.lojosho.hibiscuscommons.hooks.items; import io.lumine.mythic.bukkit.MythicBukkit; +import io.lumine.mythic.core.mobs.ActiveMob; import me.lojosho.hibiscuscommons.hooks.Hook; import me.lojosho.hibiscuscommons.hooks.HookFlag; +import org.bukkit.entity.Entity; import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; @@ -12,7 +14,7 @@ import org.jetbrains.annotations.NotNull; @SuppressWarnings("SpellCheckingInspection") public class HookMythic extends Hook { public HookMythic() { - super("mythicmobs", HookFlag.ITEM_SUPPORT); + super("mythicmobs", HookFlag.ITEM_SUPPORT, HookFlag.ENTITY_SUPPORT); } /** @@ -22,4 +24,13 @@ public class HookMythic extends Hook { public ItemStack getItem(@NotNull String itemId) { return MythicBukkit.inst().getItemManager().getItemStack(itemId); } + + @Override + public String getEntityString(Entity entity) { + ActiveMob mythicMob = MythicBukkit.inst().getMobManager().getActiveMob(entity.getUniqueId()).orElse(null); + if(mythicMob != null){ + return mythicMob.getMobType(); + } + return null; + } } diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookOraxen.java b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookOraxen.java index f48d669..27792fe 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookOraxen.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/items/HookOraxen.java @@ -25,4 +25,12 @@ public class HookOraxen extends Hook { if (builder == null) return null; return builder.build(); } + + @Override + public String getItemString(ItemStack itemStack) { + if (itemStack == null) return null; + if (!itemStack.hasItemMeta()) return null; + if (!OraxenItems.exists(itemStack)) return null; + return OraxenItems.getIdByItem(itemStack); + } } diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookCMI.java b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookCMI.java index fcaae53..cd7623b 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookCMI.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookCMI.java @@ -20,13 +20,13 @@ public class HookCMI extends Hook { @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onPlayerVanish(@NotNull CMIPlayerVanishEvent event) { - HibiscusPlayerVanishEvent newEvent = new HibiscusPlayerVanishEvent(event.getPlayer()); + HibiscusPlayerVanishEvent newEvent = new HibiscusPlayerVanishEvent(this, event.getPlayer()); Bukkit.getPluginManager().callEvent(newEvent); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onPlayerShow(@NotNull CMIPlayerUnVanishEvent event) { - HibiscusPlayerUnVanishEvent newEvent = new HibiscusPlayerUnVanishEvent(event.getPlayer()); + HibiscusPlayerUnVanishEvent newEvent = new HibiscusPlayerUnVanishEvent(this, event.getPlayer()); Bukkit.getPluginManager().callEvent(newEvent); } } diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookCustomFishing.java b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookCustomFishing.java new file mode 100644 index 0000000..49ca28c --- /dev/null +++ b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookCustomFishing.java @@ -0,0 +1,26 @@ +package me.lojosho.hibiscuscommons.hooks.misc; + +import me.lojosho.hibiscuscommons.api.events.HibiscusPluginFishEvent; +import me.lojosho.hibiscuscommons.hooks.Hook; +import net.momirealms.customfishing.api.event.FishingResultEvent; +import net.momirealms.customfishing.api.mechanic.loot.LootType; +import org.bukkit.Bukkit; +import org.bukkit.Material; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.inventory.ItemStack; + +public class HookCustomFishing extends Hook { + + public HookCustomFishing() { + super("CustomFishing"); + } + + @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) + public void onPlayerFish(FishingResultEvent event) { + // TODO: Finish this once I get a firmer response on how this api is suppose to work + if (!event.getLoot().getType().equals(LootType.ITEM)) return; + HibiscusPluginFishEvent newEvent = new HibiscusPluginFishEvent(this, event.getPlayer(), new ItemStack(Material.ICE)); + Bukkit.getPluginManager().callEvent(newEvent); + } +} diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookLibsDisguises.java b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookLibsDisguises.java index c06f4d7..8dd0e1b 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookLibsDisguises.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookLibsDisguises.java @@ -18,14 +18,14 @@ public class HookLibsDisguises extends Hook { @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onPlayerVanish(@NotNull DisguiseEvent event) { if (!(event.getEntity() instanceof Player player)) return; - HibiscusPlayerVanishEvent newEvent = new HibiscusPlayerVanishEvent(player); + HibiscusPlayerVanishEvent newEvent = new HibiscusPlayerVanishEvent(this, player); Bukkit.getPluginManager().callEvent(newEvent); } @EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true) public void onPlayerShow(@NotNull UndisguiseEvent event) { if (!(event.getEntity() instanceof Player player)) return; - HibiscusPlayerVanishEvent newEvent = new HibiscusPlayerVanishEvent(player); + HibiscusPlayerVanishEvent newEvent = new HibiscusPlayerVanishEvent(this, player); Bukkit.getPluginManager().callEvent(newEvent); } } diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookModelEngine.java b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookModelEngine.java index 3808a67..cbd0132 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookModelEngine.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookModelEngine.java @@ -1,10 +1,20 @@ package me.lojosho.hibiscuscommons.hooks.misc; +import com.ticxo.modelengine.api.ModelEngineAPI; +import com.ticxo.modelengine.api.model.ModeledEntity; import me.lojosho.hibiscuscommons.hooks.Hook; +import org.bukkit.entity.Entity; public class HookModelEngine extends Hook { public HookModelEngine() { super("ModelEngine"); } + + @Override + public String getEntityString(Entity entity) { + ModeledEntity modeledEntity = ModelEngineAPI.getModeledEntity(entity); + if (modeledEntity == null || modeledEntity.getModels().isEmpty()) return null; + return modeledEntity.getModels().entrySet().stream().findFirst().get().getValue().getBlueprint().getName(); + } } diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookPremiumVanish.java b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookPremiumVanish.java index 10f4b3e..24e2fcc 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookPremiumVanish.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookPremiumVanish.java @@ -22,13 +22,13 @@ public class HookPremiumVanish extends Hook { @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) public void onPlayerVanish(@NotNull PlayerHideEvent event) { - HibiscusPlayerVanishEvent newEvent = new HibiscusPlayerVanishEvent(event.getPlayer()); + HibiscusPlayerVanishEvent newEvent = new HibiscusPlayerVanishEvent(this, event.getPlayer()); Bukkit.getPluginManager().callEvent(newEvent); } @EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true) public void onPlayerShow(@NotNull PlayerShowEvent event) { - HibiscusPlayerUnVanishEvent newEvent = new HibiscusPlayerUnVanishEvent(event.getPlayer()); + HibiscusPlayerUnVanishEvent newEvent = new HibiscusPlayerUnVanishEvent(this, event.getPlayer()); Bukkit.getPluginManager().callEvent(newEvent); } } diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookSuperVanish.java b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookSuperVanish.java index ef2b222..13afd8e 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookSuperVanish.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/misc/HookSuperVanish.java @@ -22,13 +22,13 @@ public class HookSuperVanish extends Hook { @EventHandler(priority = EventPriority.NORMAL) public void onPlayerVanish(@NotNull PlayerHideEvent event) { - HibiscusPlayerVanishEvent newEvent = new HibiscusPlayerVanishEvent(event.getPlayer()); + HibiscusPlayerVanishEvent newEvent = new HibiscusPlayerVanishEvent(this, event.getPlayer()); Bukkit.getPluginManager().callEvent(newEvent); } @EventHandler(priority = EventPriority.NORMAL) public void onPlayerShow(@NotNull PlayerShowEvent event) { - HibiscusPlayerUnVanishEvent newEvent = new HibiscusPlayerUnVanishEvent(event.getPlayer()); + HibiscusPlayerUnVanishEvent newEvent = new HibiscusPlayerUnVanishEvent(this, event.getPlayer()); Bukkit.getPluginManager().callEvent(newEvent); } } diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/placeholders/HookPlaceholderAPI.java b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/placeholders/HookPlaceholderAPI.java index ee35449..e8e41b9 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/placeholders/HookPlaceholderAPI.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/placeholders/HookPlaceholderAPI.java @@ -1,7 +1,7 @@ package me.lojosho.hibiscuscommons.hooks.placeholders; -import me.lojosho.hibiscuscommons.hooks.Hook; import me.clip.placeholderapi.expansion.PlaceholderExpansion; +import me.lojosho.hibiscuscommons.hooks.Hook; import java.util.ArrayList; diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/nms/NMSHandlers.java b/common/src/main/java/me/lojosho/hibiscuscommons/nms/NMSHandlers.java index d9f9ac4..8ae6501 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/nms/NMSHandlers.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/nms/NMSHandlers.java @@ -5,7 +5,6 @@ import me.lojosho.hibiscuscommons.HibiscusCommonsPlugin; import org.jetbrains.annotations.Nullable; import java.lang.reflect.InvocationTargetException; -import java.util.logging.Level; public class NMSHandlers { diff --git a/common/src/main/java/me/lojosho/hibiscuscommons/util/ServerUtils.java b/common/src/main/java/me/lojosho/hibiscuscommons/util/ServerUtils.java index 3a11513..e31c41c 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/util/ServerUtils.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/util/ServerUtils.java @@ -2,7 +2,6 @@ package me.lojosho.hibiscuscommons.util; import com.comphenix.protocol.wrappers.WrappedGameProfile; import com.comphenix.protocol.wrappers.WrappedSignedProperty; -import me.lojosho.hibiscuscommons.nms.NMSHandler; import me.lojosho.hibiscuscommons.nms.NMSHandlers; import org.bukkit.Color; import org.bukkit.entity.Player;