From cc1c71dad9938c5ff2a34ad36be9932c72ff5019 Mon Sep 17 00:00:00 2001 From: NotAlexNoyle Date: Mon, 25 May 2026 17:31:41 -0400 Subject: [PATCH] Use PersistentDataContainer to identify flying bows --- .../Listeners/OnEntityShootBowEvent.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/main/java/net/trueog/flyingbowog/Listeners/OnEntityShootBowEvent.java b/src/main/java/net/trueog/flyingbowog/Listeners/OnEntityShootBowEvent.java index 6ca3fee..134d6a4 100644 --- a/src/main/java/net/trueog/flyingbowog/Listeners/OnEntityShootBowEvent.java +++ b/src/main/java/net/trueog/flyingbowog/Listeners/OnEntityShootBowEvent.java @@ -32,9 +32,18 @@ public class OnEntityShootBowEvent implements Listener { // Only react to players shooting arrows with our Flying Bow. if (!(event.getEntity() instanceof Player player)) return; - if (!(event.getProjectile() instanceof Arrow arrow)) + FlyingBowOG.getPlugin().getLogger().info("[FB-DEBUG] shoot by player " + player.getName()); + if (!(event.getProjectile() instanceof Arrow arrow)) { + + FlyingBowOG.getPlugin().getLogger() + .info("[FB-DEBUG] projectile NOT Arrow: " + event.getProjectile().getType()); return; + + } + ItemStack bow = player.getInventory().getItemInMainHand(); + FlyingBowOG.getPlugin().getLogger().info("[FB-DEBUG] mainhand=" + bow.getType() + " flags=" + bow.getItemFlags() + + " isFlyingBow=" + isFlyingBow(bow)); if (!isFlyingBow(bow)) return; @@ -71,10 +80,15 @@ public class OnEntityShootBowEvent implements Listener { boolean sameWorld = shooter.getWorld().getKey().toString().equals(worldKey); + FlyingBowOG.getPlugin().getLogger().info("[FB-DEBUG] mount tick: sameWorld=" + sameWorld + " dead=" + + rideArrow.isDead() + " valid=" + rideArrow.isValid()); + if (!sameWorld || rideArrow.isDead() || !rideArrow.isValid()) return; - rideArrow.addPassenger(shooter); + boolean mounted = rideArrow.addPassenger(shooter); + FlyingBowOG.getPlugin().getLogger() + .info("[FB-DEBUG] addPassenger returned " + mounted + " passengers=" + rideArrow.getPassengers()); }, 1L);