From 8c00347ef2b0205ed7df7755c0fc1d5ba17cfdd3 Mon Sep 17 00:00:00 2001 From: Shiewk Date: Wed, 21 Aug 2024 18:40:06 +0200 Subject: [PATCH] Hide death messages from vanished players --- .../smoderation/listener/VanishListener.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/main/java/de/shiewk/smoderation/listener/VanishListener.java b/src/main/java/de/shiewk/smoderation/listener/VanishListener.java index a1bf84e..fa7a596 100644 --- a/src/main/java/de/shiewk/smoderation/listener/VanishListener.java +++ b/src/main/java/de/shiewk/smoderation/listener/VanishListener.java @@ -2,14 +2,19 @@ package de.shiewk.smoderation.listener; import de.shiewk.smoderation.SModeration; import de.shiewk.smoderation.command.VanishCommand; +import net.kyori.adventure.text.Component; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; +import org.bukkit.event.entity.PlayerDeathEvent; import org.bukkit.event.player.PlayerJoinEvent; import org.bukkit.event.player.PlayerQuitEvent; +import static de.shiewk.smoderation.SModeration.SECONDARY_COLOR; +import static net.kyori.adventure.text.Component.text; + public class VanishListener implements Listener { @EventHandler public void onPlayerQuit(PlayerQuitEvent event){ @@ -37,4 +42,17 @@ public class VanishListener implements Listener { }); } + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onPlayerDeath(PlayerDeathEvent event){ + final Component message = event.deathMessage(); + if (VanishCommand.isVanished(event.getPlayer()) && message != null){ + event.deathMessage(null); + for (Player onlinePlayer : Bukkit.getOnlinePlayers()) { + if (onlinePlayer.hasPermission("smod.vanish.see")){ + onlinePlayer.sendMessage(text("[VANISH] ").color(SECONDARY_COLOR).append(message)); + } + } + } + } + }