Fix a ClassCastException from shooting fireworks

This commit is contained in:
Shane Freeder 2019-05-07 19:56:32 +01:00
parent b7281b6dfc
commit ca0b6b5337
2 changed files with 10 additions and 11 deletions

View file

@ -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. 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 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 --- a/src/main/java/org/bukkit/event/entity/EntityShootBowEvent.java
+++ b/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; @@ -0,0 +0,0 @@ package org.bukkit.event.entity;
@ -30,19 +30,18 @@ index ec12b57e..d086f331 100644
+ public boolean getConsumeArrow() { + public boolean getConsumeArrow() {
+ return consumeArrow; + return consumeArrow;
+ } + }
+
+ @NotNull + @NotNull
+ public ItemStack getArrowItem() { + public ItemStack getArrowItem() {
+ return arrowItem; + return arrowItem;
+ } + }
+ +
+ @Deprecated + @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); + 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 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) {
super(shooter); super(shooter);
+ this.arrowItem = arrowItem; + this.arrowItem = arrowItem;
+ // Paper end + // Paper end

View file

@ -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. 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 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 --- a/src/main/java/net/minecraft/server/EntitySkeletonAbstract.java
+++ b/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 @@ -0,0 +0,0 @@ public abstract class EntitySkeletonAbstract extends EntityMonster implements IR
@ -19,7 +19,7 @@ index e575d3cff7..85157e80d2 100644
event.getProjectile().remove(); event.getProjectile().remove();
return; return;
diff --git a/src/main/java/net/minecraft/server/ItemBow.java b/src/main/java/net/minecraft/server/ItemBow.java 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 --- a/src/main/java/net/minecraft/server/ItemBow.java
+++ b/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 { @@ -0,0 +0,0 @@ public class ItemBow extends ItemProjectileWeapon {
@ -59,7 +59,7 @@ index 50b815dc89..4ec02c8ce7 100644
if (itemstack1.isEmpty()) { if (itemstack1.isEmpty()) {
entityhuman.inventory.f(itemstack1); entityhuman.inventory.f(itemstack1);
diff --git a/src/main/java/net/minecraft/server/ItemCrossbow.java b/src/main/java/net/minecraft/server/ItemCrossbow.java 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 --- a/src/main/java/net/minecraft/server/ItemCrossbow.java
+++ b/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 { @@ -0,0 +0,0 @@ public class ItemCrossbow extends ItemProjectileWeapon {
@ -72,7 +72,7 @@ index 6da9e5e4b7..cd17b47771 100644
event.getProjectile().remove(); event.getProjectile().remove();
return; return;
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java 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 --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/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; @@ -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, 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); Bukkit.getPluginManager().callEvent(event);
return event; return event;