papermc/Spigot-Server-Patches/0099-Use-correct-item-in-arrow-pickup-event.patch
Aikar 3faaaab75d Optimize isInvalidYLocation, getType and getBlockData
Some pretty micro optimizations, but this is the hottest method in the server....

This will drastically reduce number of operations to perform getType

the 2 previous patches was squashed into 1
2016-06-22 22:43:02 -04:00

31 lines
1.7 KiB
Diff

From 998ca2697fc4262c3146a8b1286795e8ad979a3c Mon Sep 17 00:00:00 2001
From: Jedediah Smith <jedediah@silencegreys.com>
Date: Tue, 22 Mar 2016 16:00:16 -0400
Subject: [PATCH] Use correct item in arrow pickup event
diff --git a/src/main/java/net/minecraft/server/EntityArrow.java b/src/main/java/net/minecraft/server/EntityArrow.java
index b7ac5f7..37cb17c 100644
--- a/src/main/java/net/minecraft/server/EntityArrow.java
+++ b/src/main/java/net/minecraft/server/EntityArrow.java
@@ -444,7 +444,7 @@ public abstract class EntityArrow extends Entity implements IProjectile {
public void d(EntityHuman entityhuman) {
if (!this.world.isClientSide && this.inGround && this.shake <= 0) {
// CraftBukkit start
- ItemStack itemstack = new ItemStack(Items.ARROW);
+ ItemStack itemstack = this.j(); // Paper - Use the correct item
if (this.fromPlayer == PickupStatus.ALLOWED && entityhuman.inventory.canHold(itemstack) > 0) {
EntityItem item = new EntityItem(this.world, this.locX, this.locY, this.locZ, itemstack);
@@ -459,7 +459,7 @@ public abstract class EntityArrow extends Entity implements IProjectile {
// CraftBukkit end
boolean flag = this.fromPlayer == EntityArrow.PickupStatus.ALLOWED || this.fromPlayer == EntityArrow.PickupStatus.CREATIVE_ONLY && entityhuman.abilities.canInstantlyBuild;
- if (this.fromPlayer == EntityArrow.PickupStatus.ALLOWED && !entityhuman.inventory.pickup(this.j())) {
+ if (this.fromPlayer == EntityArrow.PickupStatus.ALLOWED && !entityhuman.inventory.pickup(itemstack)) { // Paper - Use event itemstack
flag = false;
}
--
2.9.0