diff --git a/src/main/java/fr/mrmicky/infinitejump/JumpListener.java b/src/main/java/fr/mrmicky/infinitejump/JumpListener.java index 091a031..765a86a 100644 --- a/src/main/java/fr/mrmicky/infinitejump/JumpListener.java +++ b/src/main/java/fr/mrmicky/infinitejump/JumpListener.java @@ -1,5 +1,6 @@ package fr.mrmicky.infinitejump; +import fr.mrmicky.infinitejump.events.InfiniteJumpToggleEvent; import fr.mrmicky.infinitejump.particle.ParticleUtils; import org.bukkit.Bukkit; import org.bukkit.Sound; @@ -66,6 +67,12 @@ public void onPlayerToggleFlight(PlayerToggleFlightEvent e) { return; } + InfiniteJumpToggleEvent infiniteJumpToggleEvent = new InfiniteJumpToggleEvent(e.getPlayer()); + Bukkit.getPluginManager().callEvent(infiniteJumpToggleEvent); + if (infiniteJumpToggleEvent.isCancelled()){ + return; + } + e.setCancelled(true); if (--jumpsLeft <= 1) { diff --git a/src/main/java/fr/mrmicky/infinitejump/events/InfiniteJumpToggleEvent.java b/src/main/java/fr/mrmicky/infinitejump/events/InfiniteJumpToggleEvent.java new file mode 100644 index 0000000..1b46b50 --- /dev/null +++ b/src/main/java/fr/mrmicky/infinitejump/events/InfiniteJumpToggleEvent.java @@ -0,0 +1,37 @@ +package fr.mrmicky.infinitejump.events; + +import org.bukkit.entity.Player; +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; + +public class InfiniteJumpToggleEvent extends Event { + private Player player; + private boolean cancelled; + + private static final HandlerList HANDLERS = new HandlerList(); + + @Override + public HandlerList getHandlers() { + return HANDLERS; + } + + public static HandlerList getHandlerList() { + return HANDLERS; + } + + public InfiniteJumpToggleEvent(Player player){ + this.player = player; + } + + public Player getPlayer() { + return player; + } + + public boolean isCancelled() { + return cancelled; + } + + public void setCancelled(boolean cancelled) { + this.cancelled = cancelled; + } +}