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 bade716..843430f 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/Hook.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/Hook.java @@ -152,12 +152,4 @@ public abstract class Hook implements Listener { public String getEntityString(@NotNull Entity entity) { return null; } - - /** - * Whether the entity is invisible (as defined by the hook) - * @return true if the entity is invisible, false otherwise (or if the hook does not support entity invisibility) - */ - public boolean isInvisible(UUID uuid) { - return false; - } } \ No newline at end of file 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 7276e21..eb43e79 100644 --- a/common/src/main/java/me/lojosho/hibiscuscommons/hooks/Hooks.java +++ b/common/src/main/java/me/lojosho/hibiscuscommons/hooks/Hooks.java @@ -12,13 +12,14 @@ import org.bukkit.Bukkit; import org.bukkit.Material; import org.bukkit.OfflinePlayer; import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; import org.bukkit.inventory.ItemStack; +import org.bukkit.metadata.MetadataValue; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.util.HashMap; import java.util.List; -import java.util.Map; import java.util.UUID; public class Hooks { @@ -30,8 +31,6 @@ public class Hooks { private static final HookGeary GEARY_HOOK = new HookGeary(); private static final HookMythic MYTHIC_HOOK = new HookMythic(); private static final HookDenizen DENIZEN_HOOK = new HookDenizen(); - private static final HookPremiumVanish PREMIUM_VANISH_HOOK = new HookPremiumVanish(); - private static final HookSuperVanish SUPER_VANISH_HOOK = new HookSuperVanish(); private static final HookHMCColor HMC_COLOR_HOOK = new HookHMCColor(); private static final HookCMI CMI_HOOK = new HookCMI(); private static final HookLibsDisguises LIBS_DISGUISES_HOOK = new HookLibsDisguises(); @@ -42,6 +41,8 @@ public class Hooks { private static final HookCustomFishing CF_HOOK = new HookCustomFishing(); private static final HookGSit GSIT_HOOK = new HookGSit(); private static final HookCraftEngine CRAFT_ENGINE_HOOK = new HookCraftEngine(); + private static final HookPremiumVanish PREMIUM_VANISH_HOOK = new HookPremiumVanish(); + private static final HookSuperVanish SUPER_VANISH_HOOK = new HookSuperVanish(); private static boolean allHooksActive = false; @@ -53,11 +54,11 @@ public class Hooks { return HOOK_POOL.containsKey(id.toLowerCase()); } - public static void addHook(Hook hook) { + public static void addHook(@NotNull Hook hook) { HOOK_POOL.put(hook.getId().toLowerCase(), hook); } - public static void addPlaceholderAPI(PlaceholderExpansion expansion) { + public static void addPlaceholderAPI(@NotNull PlaceholderExpansion expansion) { if (Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null) { HookPlaceholderAPI hook = (HookPlaceholderAPI) getHook("PlaceholderAPI"); hook.registerPlaceholder(expansion); @@ -133,7 +134,7 @@ public class Hooks { return hook.getItem(split[1]); } - public static String getStringItem(ItemStack itemStack) { + public static String getStringItem(@NotNull ItemStack itemStack) { for (Hook hook : HOOK_POOL.values()) { if (hook.isDetected() && hook.hasEnabledItemHook()) { String stringyItem = hook.getItemString(itemStack); @@ -144,7 +145,7 @@ public class Hooks { return itemStack.getType().toString(); } - public static String getStringEntity(Entity entity) { + public static String getStringEntity(@NotNull Entity entity) { for (Hook hook : HOOK_POOL.values()) { if (hook.isDetected() && hook.hasEnabledEntityHook()) { String stringyEntity = hook.getEntityString(entity); @@ -155,19 +156,22 @@ public class Hooks { return entity.getType().toString().toUpperCase(); } - public static boolean isActiveHook(String id) { + public static boolean isActiveHook(@NotNull String id) { Hook hook = getHook(id); if (hook == null) return false; if (!hook.isDetected()) return false; return hook.isActive(); } - public static boolean isInvisible(UUID uuid) { - for (Hook hook : HOOK_POOL.values()) { - if (hook.isDetected()) { - if (hook.isInvisible(uuid)) return true; - } - } - return false; + public static boolean isInvisible(@NotNull UUID uuid) { + Player player = Bukkit.getPlayer(uuid); + if (player == null) return false; + return isInvisible(player); + } + + public static boolean isInvisible(@NotNull Player player) { + List metadataValues = player.getMetadata("vanished"); + if (metadataValues.isEmpty()) return false; + return metadataValues.getFirst().asBoolean(); } } 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 a50a3a9..c2580a2 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 @@ -34,11 +34,4 @@ public class HookCMI extends Hook { HibiscusPlayerUnVanishEvent newEvent = new HibiscusPlayerUnVanishEvent(this, event.getPlayer()); Bukkit.getPluginManager().callEvent(newEvent); } - - @Override - public boolean isInvisible(UUID uuid) { - Player onlinePlayer = Bukkit.getPlayer(uuid); - if (onlinePlayer == null) return false; - return CMI.getInstance().getVanishManager().getAllVanished().contains(uuid); - } } 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 add4c87..96e3457 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 @@ -33,11 +33,4 @@ public class HookLibsDisguises extends Hook { HibiscusPlayerUnVanishEvent newEvent = new HibiscusPlayerUnVanishEvent(this, player); Bukkit.getPluginManager().callEvent(newEvent); } - - @Override - public boolean isInvisible(UUID uuid) { - Player onlinePlayer = Bukkit.getPlayer(uuid); - if (onlinePlayer == null) return false; - return DisguiseAPI.isDisguised(onlinePlayer); - } } 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 45965a5..b48f28b 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 @@ -2,13 +2,10 @@ package me.lojosho.hibiscuscommons.hooks.misc; import de.myzelyam.api.vanish.PlayerHideEvent; import de.myzelyam.api.vanish.PlayerShowEvent; -import de.myzelyam.api.vanish.VanishAPI; import me.lojosho.hibiscuscommons.api.events.HibiscusPlayerUnVanishEvent; import me.lojosho.hibiscuscommons.api.events.HibiscusPlayerVanishEvent; import me.lojosho.hibiscuscommons.hooks.Hook; import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.jetbrains.annotations.NotNull; @@ -37,13 +34,4 @@ public class HookPremiumVanish extends Hook { HibiscusPlayerUnVanishEvent newEvent = new HibiscusPlayerUnVanishEvent(this, event.getPlayer()); Bukkit.getPluginManager().callEvent(newEvent); } - - @Override - public boolean isInvisible(UUID uuid) { - OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(uuid); - if (!offlinePlayer.isOnline()) return false; - Player player = offlinePlayer.getPlayer(); - if (player == null) return false; - return VanishAPI.isInvisible(player); - } } 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 48fe3c0..3b1dcaf 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 @@ -2,20 +2,14 @@ package me.lojosho.hibiscuscommons.hooks.misc; import de.myzelyam.api.vanish.PlayerHideEvent; import de.myzelyam.api.vanish.PlayerShowEvent; -import de.myzelyam.api.vanish.VanishAPI; import me.lojosho.hibiscuscommons.api.events.HibiscusPlayerUnVanishEvent; import me.lojosho.hibiscuscommons.api.events.HibiscusPlayerVanishEvent; import me.lojosho.hibiscuscommons.hooks.Hook; import org.bukkit.Bukkit; -import org.bukkit.OfflinePlayer; -import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; -import org.bukkit.event.player.PlayerJoinEvent; import org.jetbrains.annotations.NotNull; -import java.util.UUID; - /** * A hook that integrates the plugin {@link de.myzelyam.api.vanish.VanishAPI Supervanish} * @@ -38,13 +32,4 @@ public class HookSuperVanish extends Hook { HibiscusPlayerUnVanishEvent newEvent = new HibiscusPlayerUnVanishEvent(this, event.getPlayer()); Bukkit.getPluginManager().callEvent(newEvent); } - - @Override - public boolean isInvisible(UUID uuid) { - OfflinePlayer offlinePlayer = Bukkit.getOfflinePlayer(uuid); - if (!offlinePlayer.isOnline()) return false; - Player player = offlinePlayer.getPlayer(); - if (player == null) return false; - return VanishAPI.isInvisible(player); - } }