Fix a ClassCastException from shooting fireworks

This commit is contained in:
Shane Freeder 2019-05-07 19:56:32 +01:00
parent 389c72c62e
commit 427078900e
No known key found for this signature in database
GPG Key ID: A3F61EA5A085289C
2 changed files with 12 additions and 13 deletions

View File

@ -1,4 +1,4 @@
From fd5b30936be418b1270633aa80c6df0c12665ab6 Mon Sep 17 00:00:00 2001 From d703171a91b490c086f656418317449ad3e6896f Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Sat, 15 Jun 2013 19:52:04 -0400 Date: Sat, 15 Jun 2013 19:52:04 -0400
Subject: [PATCH] EntityShootBowEvent consumeArrow and getArrowItem API Subject: [PATCH] EntityShootBowEvent consumeArrow and getArrowItem API
@ -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
@@ -2,6 +2,7 @@ package org.bukkit.event.entity; @@ -2,6 +2,7 @@ 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

@ -1,4 +1,4 @@
From 2fe176bc1b672bcf7c69ef65687e041a10e9fa84 Mon Sep 17 00:00:00 2001 From 6aa7f996f54b550a634d8b78040f237483d18157 Mon Sep 17 00:00:00 2001
From: Aikar <aikar@aikar.co> From: Aikar <aikar@aikar.co>
Date: Sat, 15 Jun 2013 19:51:17 -0400 Date: Sat, 15 Jun 2013 19:51:17 -0400
Subject: [PATCH] EntityShootBowEvent consumeArrow and getArrowItem API Subject: [PATCH] EntityShootBowEvent consumeArrow and getArrowItem API
@ -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
@@ -157,7 +157,7 @@ public abstract class EntitySkeletonAbstract extends EntityMonster implements IR @@ -157,7 +157,7 @@ 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
@@ -36,6 +36,7 @@ public class ItemBow extends ItemProjectileWeapon { @@ -36,6 +36,7 @@ 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
@@ -213,7 +213,7 @@ public class ItemCrossbow extends ItemProjectileWeapon { @@ -213,7 +213,7 @@ 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
@@ -49,6 +49,7 @@ import net.minecraft.server.GeneratorAccess; @@ -49,6 +49,7 @@ 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;