ec9fa36908
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 149527f7 SPIGOT-5782: Set Arrow Launched From Crossbow CraftBukkit Changes: be6aaf04 SPIGOT-5782: Set Arrow Launched From Crossbow 833da9c4 SPIGOT-5799: InventoryCloseEvent fires after PlayerQuitEvent 26c0084f SPIGOT-5675, SPIGOT-5798, MC-149563: Fix tracking of entities across dimensions 7f3e7c3f SPIGOT-5797: Zombie(Villagers) Instant Convert based on their lifetime
45 lines
2.3 KiB
Diff
45 lines
2.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: kickash32 <kickash32@gmail.com>
|
|
Date: Mon, 19 Aug 2019 19:42:35 +0500
|
|
Subject: [PATCH] Prevent consuming the wrong itemstack
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
|
|
index 0a31f2e931bba74ecda40c3792718a530acec3af..576c9c6ae4339951d4ec9fffa69c7f860d82b33f 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityLiving.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
|
|
@@ -2897,10 +2897,13 @@ public abstract class EntityLiving extends Entity {
|
|
this.datawatcher.set(EntityLiving.ao, (byte) j);
|
|
}
|
|
|
|
- public void c(EnumHand enumhand) {
|
|
+ // Paper start -- OBFHELPER and forwarder to method with forceUpdate parameter
|
|
+ public void c(EnumHand enumhand) { this.updateActiveItem(enumhand, false); }
|
|
+ public void updateActiveItem(EnumHand enumhand, boolean forceUpdate) {
|
|
+ // Paper end
|
|
ItemStack itemstack = this.b(enumhand);
|
|
|
|
- if (!itemstack.isEmpty() && !this.isHandRaised()) {
|
|
+ if (!itemstack.isEmpty() && !this.isHandRaised() || forceUpdate) { // Paper use override flag
|
|
this.activeItem = itemstack;
|
|
this.bl = itemstack.k();
|
|
if (!this.world.isClientSide) {
|
|
@@ -2976,6 +2979,7 @@ public abstract class EntityLiving extends Entity {
|
|
this.clearActiveItem();
|
|
} else {
|
|
if (!this.activeItem.isEmpty() && this.isHandRaised()) {
|
|
+ this.updateActiveItem(this.getRaisedHand(), true); // Paper
|
|
this.b(this.activeItem, 16);
|
|
// CraftBukkit start - fire PlayerItemConsumeEvent
|
|
ItemStack itemstack;
|
|
@@ -3006,8 +3010,8 @@ public abstract class EntityLiving extends Entity {
|
|
this.a(this.getRaisedHand(), itemstack);
|
|
// CraftBukkit end
|
|
this.dH();
|
|
- // Paper start - if the replacement is anything but the default, update the client inventory
|
|
- if (this instanceof EntityPlayer && !com.google.common.base.Objects.equal(defaultReplacement, itemstack)) {
|
|
+ // Paper start
|
|
+ if (this instanceof EntityPlayer) {
|
|
((EntityPlayer) this).getBukkitEntity().updateInventory();
|
|
}
|
|
// Paper end
|