From 8df1029d42af7aba90127fe15212b7628da7e046 Mon Sep 17 00:00:00 2001 From: Shiewk Date: Wed, 2 Apr 2025 18:29:20 +0200 Subject: [PATCH] Add a VanishToggleEvent --- .../paper/command/VanishCommand.java | 6 +++ .../paper/event/VanishToggleEvent.java | 42 +++++++++++++++++++ 2 files changed, 48 insertions(+) create mode 100644 smoderation-paper/src/main/java/de/shiewk/smoderation/paper/event/VanishToggleEvent.java diff --git a/smoderation-paper/src/main/java/de/shiewk/smoderation/paper/command/VanishCommand.java b/smoderation-paper/src/main/java/de/shiewk/smoderation/paper/command/VanishCommand.java index 94984db..291430c 100644 --- a/smoderation-paper/src/main/java/de/shiewk/smoderation/paper/command/VanishCommand.java +++ b/smoderation-paper/src/main/java/de/shiewk/smoderation/paper/command/VanishCommand.java @@ -1,6 +1,7 @@ package de.shiewk.smoderation.paper.command; import de.shiewk.smoderation.paper.SModerationPaper; +import de.shiewk.smoderation.paper.event.VanishToggleEvent; import de.shiewk.smoderation.paper.util.PlayerUtil; import it.unimi.dsi.fastutil.objects.ObjectArrayList; import it.unimi.dsi.fastutil.objects.ObjectListIterator; @@ -63,6 +64,11 @@ public class VanishCommand implements TabExecutor { public static void toggleVanish(Player player){ final boolean newStatus = !isVanished(player); + VanishToggleEvent event = new VanishToggleEvent(player, newStatus); + Bukkit.getPluginManager().callEvent(event); + if (event.isCancelled()){ + return; + } if (newStatus){ vanishedPlayers.add(player); for (CommandSender sender : SModerationPaper.container.collectBroadcastTargets()) { diff --git a/smoderation-paper/src/main/java/de/shiewk/smoderation/paper/event/VanishToggleEvent.java b/smoderation-paper/src/main/java/de/shiewk/smoderation/paper/event/VanishToggleEvent.java new file mode 100644 index 0000000..1bdc363 --- /dev/null +++ b/smoderation-paper/src/main/java/de/shiewk/smoderation/paper/event/VanishToggleEvent.java @@ -0,0 +1,42 @@ +package de.shiewk.smoderation.paper.event; + +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 VanishToggleEvent extends PlayerEvent implements Cancellable { + private static final HandlerList handlerList = new HandlerList(); + + private final boolean state; + private boolean cancelled; + + public VanishToggleEvent(Player player, boolean state) { + super(player); + this.state = state; + } + + public boolean getState() { + return state; + } + + @Override + public @NotNull HandlerList getHandlers() { + return handlerList; + } + + public static HandlerList getHandlerList() { + return handlerList; + } + + @Override + public boolean isCancelled() { + return cancelled; + } + + @Override + public void setCancelled(boolean cancelled) { + this.cancelled = cancelled; + } +}