From abf645a4825aaad99bcb646edf14d589fb6787fd Mon Sep 17 00:00:00 2001 From: youhavetrouble Date: Mon, 14 Aug 2023 16:35:50 +0200 Subject: [PATCH] vanishnopacket hook and set correct load order --- build.gradle.kts | 1 + .../notjustnameplates/NotJustNameplates.java | 17 +++++++++++++---- .../notjustnameplates/nameplates/Nameplate.java | 11 +++++++++++ src/main/resources/paper-plugin.yml | 7 +++++++ 4 files changed, 32 insertions(+), 4 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 9f9d015..9cbf4bd 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -23,6 +23,7 @@ dependencies { paperweight.paperDevBundle("1.20.1-R0.1-SNAPSHOT", "org.purpurmc.purpur") compileOnly("me.clip:placeholderapi:2.11.3") compileOnly("com.github.LeonMangler:SuperVanish:6.2.17") + compileOnly("com.github.mbax:VanishNoPacket:3.22") } tasks { diff --git a/src/main/java/me/youhavetrouble/notjustnameplates/NotJustNameplates.java b/src/main/java/me/youhavetrouble/notjustnameplates/NotJustNameplates.java index aa97e8f..0132ac0 100644 --- a/src/main/java/me/youhavetrouble/notjustnameplates/NotJustNameplates.java +++ b/src/main/java/me/youhavetrouble/notjustnameplates/NotJustNameplates.java @@ -20,15 +20,14 @@ public final class NotJustNameplates extends JavaPlugin { private final TeamManager teamManager = new TeamManager(); private NameplateManager nameplateManager = null; - private static boolean papiHook, superVanishHook = false; + private static boolean papiHook, superVanishHook, vanishNoPacketHook = false; @Override public void onEnable() { instance = this; config = new NJNConfig(this); - papiHook = Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null && Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI"); - superVanishHook = Bukkit.getPluginManager().isPluginEnabled("SuperVanish") || Bukkit.getPluginManager().isPluginEnabled("PremiumVanish"); + checkHooks(); DefaultPermissions.registerPermission("notjustnameplates.seeown", "Allows a player to see their own nameplate", PermissionDefault.FALSE); DefaultPermissions.registerPermission("notjustnameplates.command", "Allows a player to use the /njn command", PermissionDefault.TRUE); @@ -57,7 +56,7 @@ public final class NotJustNameplates extends JavaPlugin { public void reloadPluginConfig() { config = new NJNConfig(this); - papiHook = Bukkit.getPluginManager().getPlugin("PlaceholderAPI") != null && Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI"); + checkHooks(); nameplateManager.reloadNameplates(); updateNameplatesBasedOnPermission(); } @@ -82,6 +81,12 @@ public final class NotJustNameplates extends JavaPlugin { return config.getDisplayContent("default"); } + private void checkHooks() { + papiHook = Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI"); + superVanishHook = Bukkit.getPluginManager().isPluginEnabled("SuperVanish") || Bukkit.getPluginManager().isPluginEnabled("PremiumVanish"); + vanishNoPacketHook = Bukkit.getPluginManager().isPluginEnabled("VanishNoPacket"); + } + public TeamManager getTeamManager() { return teamManager; } @@ -109,4 +114,8 @@ public final class NotJustNameplates extends JavaPlugin { public static boolean isSuperVanishHooked() { return superVanishHook; } + + public static boolean isVanishNoPacketHooked() { + return vanishNoPacketHook; + } } diff --git a/src/main/java/me/youhavetrouble/notjustnameplates/nameplates/Nameplate.java b/src/main/java/me/youhavetrouble/notjustnameplates/nameplates/Nameplate.java index 519321f..9a8e5fd 100644 --- a/src/main/java/me/youhavetrouble/notjustnameplates/nameplates/Nameplate.java +++ b/src/main/java/me/youhavetrouble/notjustnameplates/nameplates/Nameplate.java @@ -19,6 +19,9 @@ import org.bukkit.util.Transformation; import org.jetbrains.annotations.NotNull; import org.joml.AxisAngle4f; import org.joml.Vector3f; +import org.kitteh.vanish.VanishCheck; +import org.kitteh.vanish.VanishPlugin; +import org.kitteh.vanish.staticaccess.VanishNoPacket; import java.util.UUID; @@ -154,6 +157,14 @@ public class Nameplate { return; } + if (NotJustNameplates.isVanishNoPacketHooked()) { + VanishPlugin vanishPlugin = (VanishPlugin) Bukkit.getPluginManager().getPlugin("VanishNoPacket"); + if (vanishPlugin != null && vanishPlugin.getManager().isVanished(player)) { + remove(); + return; + } + } + createDisplayEntity(); if (textDisplay == null || textDisplay.isDead()) return; if (!player.getPassengers().contains(textDisplay)) { diff --git a/src/main/resources/paper-plugin.yml b/src/main/resources/paper-plugin.yml index d8ecd2c..748bcd1 100644 --- a/src/main/resources/paper-plugin.yml +++ b/src/main/resources/paper-plugin.yml @@ -12,3 +12,10 @@ dependencies: required: false - name: PremiumVanish required: false + - name: VanishNoPacket + required: false +load-after: + - name: PlaceholderAPI + - name: SuperVanish + - name: PremiumVanish + - name: VanishNoPacket \ No newline at end of file