Skip to content

Commit 5bd7f4e

Browse files
Machine-Makerkennytv
authored andcommitted
Update AbstractArrow item method implementations for 1.20.6 (#10885)
1 parent 4bc15f1 commit 5bd7f4e

8 files changed

+32
-17
lines changed

patches/api/0338-More-Projectile-API.patch

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Co-authored-by: Nassim Jahnke <nassim@njahnke.dev>
77
Co-authored-by: SoSeDiK <mrsosedik@gmail.com>
88

99
diff --git a/src/main/java/org/bukkit/entity/AbstractArrow.java b/src/main/java/org/bukkit/entity/AbstractArrow.java
10-
index 493f81ba879d1eb29a32722da27e4ff7ce4c68a8..a3a979ca7cbc89c43713fbcc9e6524fb347fa2e2 100644
10+
index 493f81ba879d1eb29a32722da27e4ff7ce4c68a8..15c7149cf9f6a0b1d99134122bb36672de72c7ca 100644
1111
--- a/src/main/java/org/bukkit/entity/AbstractArrow.java
1212
+++ b/src/main/java/org/bukkit/entity/AbstractArrow.java
1313
@@ -139,17 +139,21 @@ public interface AbstractArrow extends Projectile {
@@ -25,26 +25,34 @@ index 493f81ba879d1eb29a32722da27e4ff7ce4c68a8..a3a979ca7cbc89c43713fbcc9e6524fb
2525
* Sets the ItemStack which will be picked up from this arrow.
2626
*
2727
* @param item ItemStack set to be picked up
28-
+ * @deprecated until 1.20.5 when the behavior is more defined
28+
+ * @deprecated use {@link #getItemStack()}
2929
*/
3030
@ApiStatus.Experimental
31-
+ @Deprecated // Paper - remove in 1.20.5
31+
+ @Deprecated(forRemoval = true, since = "1.20.4") // Paper
3232
public void setItem(@NotNull ItemStack item);
3333

3434
/**
35-
@@ -220,4 +224,44 @@ public interface AbstractArrow extends Projectile {
35+
@@ -220,4 +224,52 @@ public interface AbstractArrow extends Projectile {
3636
CREATIVE_ONLY;
3737
}
3838
// Paper end
3939
+
4040
+ // Paper start - more projectile API
4141
+ /**
42-
+ * Gets the ItemStack for this arrow.
42+
+ * Gets the {@link ItemStack} for this arrow. This stack is used
43+
+ * for both visuals on the arrow and the stack that could be picked up.
4344
+ *
4445
+ * @return The ItemStack, as if a player picked up the arrow
4546
+ */
46-
+ @NotNull
47-
+ org.bukkit.inventory.ItemStack getItemStack();
47+
+ @NotNull ItemStack getItemStack();
48+
+
49+
+ /**
50+
+ * Sets the {@link ItemStack} for this arrow. This stack is used for both
51+
+ * visuals on the arrow and the stack that could be picked up.
52+
+ *
53+
+ * @param stack the arrow stack
54+
+ */
55+
+ void setItemStack(@NotNull ItemStack stack);
4856
+
4957
+ /**
5058
+ * Sets the amount of ticks this arrow has been alive in the world

patches/server/0072-Configurable-Non-Player-Arrow-Despawn-Rate.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Subject: [PATCH] Configurable Non Player Arrow Despawn Rate
66
Can set a much shorter despawn rate for arrows that players can not pick up.
77

88
diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
9-
index e6179330ee742ba6653a57b014badfed0e62495f..727d40d42240ac42a245cd64b1c7fd5b3eb7a387 100644
9+
index 89eebea583550fe703005e5a7020fa4063778a4a..230040bef7d2cf9a463cfd9cb3b1b1aa208a7119 100644
1010
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
1111
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
1212
@@ -356,7 +356,7 @@ public abstract class AbstractArrow extends Projectile {

patches/server/0203-Add-entity-knockback-events.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ index d20389c6d73114810ab8dc20a02b09db4f1971f1..d4077e88910347fb332996ce88262a1a
224224
// CraftBukkit end
225225
Level world = this.level();
226226
diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
227-
index 727d40d42240ac42a245cd64b1c7fd5b3eb7a387..e856703687812520e1869c31892c2af36d3f1f15 100644
227+
index 230040bef7d2cf9a463cfd9cb3b1b1aa208a7119..6c79997ba46e641de5aa12ff8a3d790d04a5a475 100644
228228
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
229229
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
230230
@@ -519,7 +519,7 @@ public abstract class AbstractArrow extends Projectile {

patches/server/0387-Fix-arrows-never-despawning-MC-125757.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ instead of getting stuck in a never despawn state (bubble columns,
99
etc).
1010

1111
diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
12-
index e856703687812520e1869c31892c2af36d3f1f15..f7dab560a1f98e494303ba4c5fd3d82fb78e9503 100644
12+
index 6c79997ba46e641de5aa12ff8a3d790d04a5a475..746bb8a36bd6c6ef953289576af499caad588d79 100644
1313
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
1414
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
1515
@@ -238,6 +238,7 @@ public abstract class AbstractArrow extends Projectile {

patches/server/0594-Add-critical-damage-API.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ index c89b7cf63d067895bbd07f43eef467ff1861f625..536a4e3c26e83f359083bde19832a962
4949
}
5050
// CraftBukkit end
5151
diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
52-
index f7dab560a1f98e494303ba4c5fd3d82fb78e9503..64bc4a668f635a6765ededd22246294e50c5297f 100644
52+
index 746bb8a36bd6c6ef953289576af499caad588d79..57ebb96707748e90810dc07471f9769f1317df9d 100644
5353
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
5454
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
5555
@@ -422,6 +422,7 @@ public abstract class AbstractArrow extends Projectile {

patches/server/0679-Fix-cancelling-ProjectileHitEvent-for-piercing-arrow.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ piercing arrows to avoid duplicate damage being applied.
1515
protected net.minecraft.world.entity.projectile.Projectile hitCancelled
1616

1717
diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
18-
index 64bc4a668f635a6765ededd22246294e50c5297f..1d90e9cac17e3cb2af25acad7b335447bc0a3253 100644
18+
index 57ebb96707748e90810dc07471f9769f1317df9d..10d30304c8c89b1f2a55be8529035311d1424e44 100644
1919
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
2020
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
2121
@@ -329,6 +329,19 @@ public abstract class AbstractArrow extends Projectile {

patches/server/0680-More-Projectile-API.patch

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ public net.minecraft.world.entity.projectile.ShulkerBullet targetDeltaZ
1212
public net.minecraft.world.entity.projectile.ShulkerBullet currentMoveDirection
1313
public net.minecraft.world.entity.projectile.ShulkerBullet flightSteps
1414
public net.minecraft.world.entity.projectile.AbstractArrow soundEvent
15+
public net/minecraft/world/entity/projectile/AbstractArrow setPickupItemStack(Lnet/minecraft/world/item/ItemStack;)V
1516
public net.minecraft.world.entity.projectile.ThrownTrident dealtDamage
1617
public net.minecraft.world.entity.projectile.Arrow NO_EFFECT_COLOR
1718
public net.minecraft.world.entity.projectile.Projectile hasBeenShot
@@ -175,7 +176,7 @@ index 91c2d0b40d3fca86938cd454e1415a4eea3df7c7..de4fb2654c7895cfd83ad694455ee56c
175176
+ // Paper end - More projectile API
176177
}
177178
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractArrow.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractArrow.java
178-
index 329ca9c743a7f2feeabbfb769ff9a71f60165006..b095642d0e0ed3e61590d362ce991ff2065b5b78 100644
179+
index 329ca9c743a7f2feeabbfb769ff9a71f60165006..a574161c8ff6b94bb8fda68fbc72d4b109dea593 100644
179180
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractArrow.java
180181
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftAbstractArrow.java
181182
@@ -58,20 +58,7 @@ public class CraftAbstractArrow extends AbstractProjectile implements AbstractAr
@@ -200,15 +201,21 @@ index 329ca9c743a7f2feeabbfb769ff9a71f60165006..b095642d0e0ed3e61590d362ce991ff2
200201

201202
@Override
202203
public boolean isInBlock() {
203-
@@ -149,4 +136,31 @@ public class CraftAbstractArrow extends AbstractProjectile implements AbstractAr
204+
@@ -149,4 +136,37 @@ public class CraftAbstractArrow extends AbstractProjectile implements AbstractAr
204205
public String toString() {
205206
return "CraftArrow";
206207
}
207208
+
208209
+ // Paper start
209210
+ @Override
210-
+ public org.bukkit.craftbukkit.inventory.CraftItemStack getItemStack() {
211-
+ return org.bukkit.craftbukkit.inventory.CraftItemStack.asCraftMirror(this.getHandle().getPickupItem());
211+
+ public CraftItemStack getItemStack() {
212+
+ return CraftItemStack.asCraftMirror(this.getHandle().getPickupItem());
213+
+ }
214+
+
215+
+ @Override
216+
+ public void setItemStack(final ItemStack stack) {
217+
+ Preconditions.checkArgument(stack != null, "ItemStack cannot be null");
218+
+ this.getHandle().setPickupItemStack(CraftItemStack.asNMSCopy(stack));
212219
+ }
213220
+
214221
+ @Override

patches/server/0927-Validate-ResourceLocation-in-NBT-reading.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ index 56873752ae1ae0d2a36cb171d2de6884e15c01a5..5bac748649f43d74b13e7c0b4d355e67
9797
}
9898

9999
diff --git a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
100-
index 1d90e9cac17e3cb2af25acad7b335447bc0a3253..3c71f3a538c3a5f885fc468b0060c366be9cf2d2 100644
100+
index 10d30304c8c89b1f2a55be8529035311d1424e44..ddf47dab1ab92c45e3eea09239d418a9798ed59e 100644
101101
--- a/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
102102
+++ b/src/main/java/net/minecraft/world/entity/projectile/AbstractArrow.java
103103
@@ -649,7 +649,7 @@ public abstract class AbstractArrow extends Projectile {

0 commit comments

Comments
 (0)