Use PersistentDataContainer to identify flying bows
This commit is contained in:
1 parent
6583391cd5
commit
cc1c71dad9
1 file changed
+16
-2
@@ -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);
|
||||
|
||||
|
||||
Reference in new issue
Block a user