From 00af624de0f8887391a44108edf3545b080fc7a4 Mon Sep 17 00:00:00 2001 From: flutz1 <48728436+flutz1@users.noreply.github.com> Date: Wed, 1 Jan 2025 15:47:19 +0100 Subject: [PATCH 1/2] fixed vanish bug for playerUIprompt, added PremiumVanish hook --- build.gradle | 2 +- .../commandprompter/hook/HookContainer.java | 1 + .../hook/hooks/PremiumVanishHook.java | 33 +++++++++++++++++++ .../prompt/prompts/PlayerUIPrompt.java | 2 +- src/main/resources/plugin.yml | 2 +- 5 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/cyr1en/commandprompter/hook/hooks/PremiumVanishHook.java diff --git a/build.gradle b/build.gradle index 11636e7..ba55dd8 100644 --- a/build.gradle +++ b/build.gradle @@ -85,7 +85,7 @@ dependencies { compileOnly 'org.jetbrains:annotations:23.0.0' compileOnly 'net.luckperms:api:5.4' compileOnly 'net.william278.husktowns:husktowns-common:3.0.5' - + compileOnly 'com.github.LeonMangler:PremiumVanishAPI:2.9.0-4' // Local implementation fileTree(dir: 'libs', include: '*.jar') compileOnly fileTree(dir: 'libs/compileonly', include: '*.jar') diff --git a/src/main/java/com/cyr1en/commandprompter/hook/HookContainer.java b/src/main/java/com/cyr1en/commandprompter/hook/HookContainer.java index 6802da8..0d7482f 100644 --- a/src/main/java/com/cyr1en/commandprompter/hook/HookContainer.java +++ b/src/main/java/com/cyr1en/commandprompter/hook/HookContainer.java @@ -21,6 +21,7 @@ public HookContainer(CommandPrompter plugin) { } public void initHooks() { + hook(PremiumVanishHook.class); hook(SuperVanishHook.class); hook(CarbonChatHook.class); hook(VanishNoPacketHook.class); diff --git a/src/main/java/com/cyr1en/commandprompter/hook/hooks/PremiumVanishHook.java b/src/main/java/com/cyr1en/commandprompter/hook/hooks/PremiumVanishHook.java new file mode 100644 index 0000000..6c440bd --- /dev/null +++ b/src/main/java/com/cyr1en/commandprompter/hook/hooks/PremiumVanishHook.java @@ -0,0 +1,33 @@ +package com.cyr1en.commandprompter.hook.hooks; + +import com.cyr1en.commandprompter.CommandPrompter; +import com.cyr1en.commandprompter.hook.annotations.TargetPlugin; +import de.myzelyam.api.vanish.PlayerVanishStateChangeEvent; +import de.myzelyam.api.vanish.VanishAPI; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; + +@TargetPlugin(pluginName = "PremiumVanish") +public class PremiumVanishHook extends VanishHook implements Listener { + + public PremiumVanishHook(CommandPrompter plugin) { + super(plugin); + } + + @Override + public boolean isInvisible(Player p) { + return VanishAPI.isInvisible(p); + } + + @EventHandler(priority = EventPriority.NORMAL) + public void onStateChange(PlayerVanishStateChangeEvent e) { + System.out.println("onStateCHange: "+e.isVanishing()); + var player = Bukkit.getPlayer(e.getUUID()); + if (player == null) return; + onStateChange(player, e::isVanishing); + } + +} diff --git a/src/main/java/com/cyr1en/commandprompter/prompt/prompts/PlayerUIPrompt.java b/src/main/java/com/cyr1en/commandprompter/prompt/prompts/PlayerUIPrompt.java index 91ee412..89c8fe5 100644 --- a/src/main/java/com/cyr1en/commandprompter/prompt/prompts/PlayerUIPrompt.java +++ b/src/main/java/com/cyr1en/commandprompter/prompt/prompts/PlayerUIPrompt.java @@ -173,7 +173,7 @@ private void send(Player p) { private List prepareHeads(Player p) { getPlugin().getPluginLogger().debug("Preparing heads..."); var filters = extractFilters(); - var players = getPlayersForHeads(filters, p); + var players = getPlayersForHeads(filters, p).stream().filter(player -> !vanishHook.isInvisible(player)).toList(); var isSorted = getPlugin().getPromptConfig().sorted(); var skulls = isSorted ? headCache.getHeadsSortedFor(players) : headCache.getHeadsFor(players); var clone = new ArrayList<>(skulls); diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 13078bb..0a782a2 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -2,7 +2,7 @@ name: ${projectName} version: ${projectVersion} author: ${projectAuthor} description: ${projectDescription} -softdepend: [SuperVanish, PlaceholderAPI, CarbonChat, Towny, HuskTowns, PlaceholderAPI] +softdepend: [SuperVanish,PremiumVanish, PlaceholderAPI, CarbonChat, Towny, HuskTowns] main: ${projectEntry} api-version: 1.13 From a337e29186c97cec66653ab87816a8c9619891bd Mon Sep 17 00:00:00 2001 From: flutz1 <48728436+flutz1@users.noreply.github.com> Date: Wed, 1 Jan 2025 15:50:22 +0100 Subject: [PATCH 2/2] removed console output --- .../com/cyr1en/commandprompter/hook/hooks/PremiumVanishHook.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/com/cyr1en/commandprompter/hook/hooks/PremiumVanishHook.java b/src/main/java/com/cyr1en/commandprompter/hook/hooks/PremiumVanishHook.java index 6c440bd..144b9fb 100644 --- a/src/main/java/com/cyr1en/commandprompter/hook/hooks/PremiumVanishHook.java +++ b/src/main/java/com/cyr1en/commandprompter/hook/hooks/PremiumVanishHook.java @@ -24,7 +24,6 @@ public boolean isInvisible(Player p) { @EventHandler(priority = EventPriority.NORMAL) public void onStateChange(PlayerVanishStateChangeEvent e) { - System.out.println("onStateCHange: "+e.isVanishing()); var player = Bukkit.getPlayer(e.getUUID()); if (player == null) return; onStateChange(player, e::isVanishing);