From 94717637badc270cf50d77720491c8b0298616a0 Mon Sep 17 00:00:00 2001 From: evlad Date: Sat, 7 Jan 2023 22:06:47 +0100 Subject: [PATCH] fix dupe with trident when player is locked --- .../husksync/listener/BukkitEventListener.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) 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 84b3d43b..e02c6926 100644 --- a/bukkit/src/main/java/net/william278/husksync/listener/BukkitEventListener.java +++ b/bukkit/src/main/java/net/william278/husksync/listener/BukkitEventListener.java @@ -8,6 +8,7 @@ import net.william278.husksync.data.ItemData; import net.william278.husksync.player.BukkitPlayer; import net.william278.husksync.player.OnlineUser; import org.bukkit.Bukkit; +import org.bukkit.entity.EntityType; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; @@ -17,6 +18,7 @@ import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.event.entity.EntityDamageEvent; import org.bukkit.event.entity.EntityPickupItemEvent; import org.bukkit.event.entity.PlayerDeathEvent; +import org.bukkit.event.entity.ProjectileLaunchEvent; import org.bukkit.event.inventory.InventoryClickEvent; import org.bukkit.event.inventory.InventoryOpenEvent; import org.bukkit.event.player.PlayerDropItemEvent; @@ -88,6 +90,16 @@ public class BukkitEventListener extends EventListener implements BukkitJoinEven * Events to cancel if the player has not been set yet */ + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) + public void onProjectileLaunch(@NotNull ProjectileLaunchEvent event) { + if (event.getEntity().getType() == EntityType.TRIDENT) { + var player = (Player) event.getEntity().getShooter(); + if (player != null) { + event.setCancelled(cancelPlayerEvent(player.getUniqueId())); + } + } + } + @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true) public void onDropItem(@NotNull PlayerDropItemEvent event) { event.setCancelled(cancelPlayerEvent(event.getPlayer().getUniqueId()));