diff --git a/bukkit/src/main/java/net/william278/husksync/listener/BukkitEventListener.java b/bukkit/src/main/java/net/william278/husksync/listener/BukkitEventListener.java index 46913c7c..67f619fc 100644 --- a/bukkit/src/main/java/net/william278/husksync/listener/BukkitEventListener.java +++ b/bukkit/src/main/java/net/william278/husksync/listener/BukkitEventListener.java @@ -27,6 +27,7 @@ import net.william278.husksync.user.OnlineUser; import org.bukkit.Bukkit; import org.bukkit.entity.Player; import org.bukkit.entity.Projectile; +import org.bukkit.event.Cancellable; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; @@ -49,6 +50,7 @@ import org.jetbrains.annotations.NotNull; import java.util.List; import java.util.Locale; +import java.util.UUID; import java.util.stream.Collectors; public class BukkitEventListener extends EventListener implements BukkitJoinEventListener, BukkitQuitEventListener, @@ -132,52 +134,52 @@ public class BukkitEventListener extends EventListener implements BukkitJoinEven public void onProjectileLaunch(@NotNull ProjectileLaunchEvent event) { final Projectile projectile = event.getEntity(); if (projectile.getShooter() instanceof Player player) { - event.setCancelled(cancelPlayerEvent(player.getUniqueId())); + cancelPlayerEvent(player.getUniqueId(), event); } } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onDropItem(@NotNull PlayerDropItemEvent event) { - event.setCancelled(cancelPlayerEvent(event.getPlayer().getUniqueId())); + cancelPlayerEvent(event.getPlayer().getUniqueId(), event); } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onPickupItem(@NotNull EntityPickupItemEvent event) { if (event.getEntity() instanceof Player player) { - event.setCancelled(cancelPlayerEvent(player.getUniqueId())); + cancelPlayerEvent(player.getUniqueId(), event); } } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onPlayerInteract(@NotNull PlayerInteractEvent event) { - event.setCancelled(cancelPlayerEvent(event.getPlayer().getUniqueId())); + cancelPlayerEvent(event.getPlayer().getUniqueId(), event); } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onPlayerInteractEntity(@NotNull PlayerInteractEntityEvent event) { - event.setCancelled(cancelPlayerEvent(event.getPlayer().getUniqueId())); + cancelPlayerEvent(event.getPlayer().getUniqueId(), event); } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onBlockPlace(@NotNull BlockPlaceEvent event) { - event.setCancelled(cancelPlayerEvent(event.getPlayer().getUniqueId())); + cancelPlayerEvent(event.getPlayer().getUniqueId(), event); } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onBlockBreak(@NotNull BlockBreakEvent event) { - event.setCancelled(cancelPlayerEvent(event.getPlayer().getUniqueId())); + cancelPlayerEvent(event.getPlayer().getUniqueId(), event); } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onInventoryOpen(@NotNull InventoryOpenEvent event) { if (event.getPlayer() instanceof Player player) { - event.setCancelled(cancelPlayerEvent(player.getUniqueId())); + cancelPlayerEvent(player.getUniqueId(), event); } } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onInventoryClick(@NotNull InventoryClickEvent event) { - event.setCancelled(cancelPlayerEvent(event.getWhoClicked().getUniqueId())); + cancelPlayerEvent(event.getWhoClicked().getUniqueId(), event); } @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) @@ -187,7 +189,7 @@ public class BukkitEventListener extends EventListener implements BukkitJoinEven @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onPlayerTakeDamage(@NotNull EntityDamageEvent event) { if (event.getEntity() instanceof Player player) { - event.setCancelled(cancelPlayerEvent(player.getUniqueId())); + cancelPlayerEvent(player.getUniqueId(), event); } } @@ -197,7 +199,13 @@ public class BukkitEventListener extends EventListener implements BukkitJoinEven final String commandLabel = commandArgs[0].toLowerCase(Locale.ENGLISH); if (blacklistedCommands.contains("*") || blacklistedCommands.contains(commandLabel)) { - event.setCancelled(cancelPlayerEvent(event.getPlayer().getUniqueId())); + cancelPlayerEvent(event.getPlayer().getUniqueId(), event); + } + } + + private void cancelPlayerEvent(@NotNull UUID userUuid, Cancellable event) { + if(cancelPlayerEvent(userUuid)) { + event.setCancelled(true); } } diff --git a/common/src/main/java/net/william278/husksync/listener/EventListener.java b/common/src/main/java/net/william278/husksync/listener/EventListener.java index ea8cca60..5b53aabf 100644 --- a/common/src/main/java/net/william278/husksync/listener/EventListener.java +++ b/common/src/main/java/net/william278/husksync/listener/EventListener.java @@ -22,6 +22,7 @@ package net.william278.husksync.listener; import net.william278.husksync.HuskSync; import net.william278.husksync.data.Data; import net.william278.husksync.data.DataSnapshot; +import net.william278.husksync.event.Cancellable; import net.william278.husksync.user.OnlineUser; import org.jetbrains.annotations.NotNull;