From ca0b6b533713b30d00fc712e64b7c1b8f75a27ee Mon Sep 17 00:00:00 2001 From: Shane Freeder Date: Tue, 7 May 2019 19:56:32 +0100 Subject: [PATCH] Fix a ClassCastException from shooting fireworks --- ...ootBowEvent-consumeArrow-and-getArrowItem-AP.patch | 11 +++++------ ...ootBowEvent-consumeArrow-and-getArrowItem-AP.patch | 10 +++++----- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/Spigot-API-Patches/EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch b/Spigot-API-Patches/EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch index bd30e7f556..babfa094ac 100644 --- a/Spigot-API-Patches/EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch +++ b/Spigot-API-Patches/EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch @@ -6,7 +6,7 @@ Subject: [PATCH] EntityShootBowEvent consumeArrow and getArrowItem API Adds ability to get what arrow was shot, and control if it should be consumed. diff --git a/src/main/java/org/bukkit/event/entity/EntityShootBowEvent.java b/src/main/java/org/bukkit/event/entity/EntityShootBowEvent.java -index ec12b57e..d086f331 100644 +index 18c5e31ab..37dbc12eb 100644 --- a/src/main/java/org/bukkit/event/entity/EntityShootBowEvent.java +++ b/src/main/java/org/bukkit/event/entity/EntityShootBowEvent.java @@ -0,0 +0,0 @@ package org.bukkit.event.entity; @@ -30,19 +30,18 @@ index ec12b57e..d086f331 100644 + public boolean getConsumeArrow() { + return consumeArrow; + } -+ + + @NotNull + public ItemStack getArrowItem() { + return arrowItem; + } + + @Deprecated -+ public EntityShootBowEvent(@NotNull final LivingEntity shooter, @Nullable final ItemStack bow, @NotNull final Projectile projectile, final float force) { + public EntityShootBowEvent(@NotNull final LivingEntity shooter, @Nullable final ItemStack bow, @NotNull final Entity projectile, final float force) { + this(shooter, bow, new ItemStack(org.bukkit.Material.AIR), projectile, force); + } - -- public EntityShootBowEvent(@NotNull final LivingEntity shooter, @Nullable final ItemStack bow, @NotNull final Entity projectile, final float force) { -+ public EntityShootBowEvent(@NotNull final LivingEntity shooter, @Nullable final ItemStack bow, @NotNull ItemStack arrowItem, @NotNull final Projectile projectile, final float force) { ++ ++ public EntityShootBowEvent(@NotNull final LivingEntity shooter, @Nullable final ItemStack bow, @NotNull ItemStack arrowItem, @NotNull final Entity projectile, final float force) { super(shooter); + this.arrowItem = arrowItem; + // Paper end diff --git a/Spigot-Server-Patches/EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch b/Spigot-Server-Patches/EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch index 5bc1558f3f..de05cd3e7b 100644 --- a/Spigot-Server-Patches/EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch +++ b/Spigot-Server-Patches/EntityShootBowEvent-consumeArrow-and-getArrowItem-AP.patch @@ -6,7 +6,7 @@ Subject: [PATCH] EntityShootBowEvent consumeArrow and getArrowItem API Adds ability to get what arrow was shot, and control if it should be consumed. diff --git a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java -index e575d3cff7..85157e80d2 100644 +index e575d3cff..85157e80d 100644 --- a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java +++ b/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java @@ -0,0 +0,0 @@ public abstract class EntitySkeletonAbstract extends EntityMonster implements IR @@ -19,7 +19,7 @@ index e575d3cff7..85157e80d2 100644 event.getProjectile().remove(); return; diff --git a/src/main/java/net/minecraft/server/ItemBow.java b/src/main/java/net/minecraft/server/ItemBow.java -index 50b815dc89..4ec02c8ce7 100644 +index 50b815dc8..4ec02c8ce 100644 --- a/src/main/java/net/minecraft/server/ItemBow.java +++ b/src/main/java/net/minecraft/server/ItemBow.java @@ -0,0 +0,0 @@ public class ItemBow extends ItemProjectileWeapon { @@ -59,7 +59,7 @@ index 50b815dc89..4ec02c8ce7 100644 if (itemstack1.isEmpty()) { entityhuman.inventory.f(itemstack1); diff --git a/src/main/java/net/minecraft/server/ItemCrossbow.java b/src/main/java/net/minecraft/server/ItemCrossbow.java -index 6da9e5e4b7..cd17b47771 100644 +index 6da9e5e4b..cd17b4777 100644 --- a/src/main/java/net/minecraft/server/ItemCrossbow.java +++ b/src/main/java/net/minecraft/server/ItemCrossbow.java @@ -0,0 +0,0 @@ public class ItemCrossbow extends ItemProjectileWeapon { @@ -72,7 +72,7 @@ index 6da9e5e4b7..cd17b47771 100644 event.getProjectile().remove(); return; diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java -index db44e82a10..30fe2528ae 100644 +index db44e82a1..f0958e770 100644 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java @@ -0,0 +0,0 @@ import net.minecraft.server.GeneratorAccess; @@ -99,7 +99,7 @@ index db44e82a10..30fe2528ae 100644 } - EntityShootBowEvent event = new EntityShootBowEvent(shooter, itemInHand, arrow, force); -+ EntityShootBowEvent event = new EntityShootBowEvent(shooter, itemInHand, CraftItemStack.asCraftMirror(arrowItem), (Projectile) arrow, force); // Paper ++ EntityShootBowEvent event = new EntityShootBowEvent(shooter, itemInHand, CraftItemStack.asCraftMirror(arrowItem), arrow, force); // Paper Bukkit.getPluginManager().callEvent(event); return event;