aboutsummaryrefslogtreecommitdiffhomepage
path: root/patches/server/0297-Prevent-consuming-the-wrong-itemstack.patch
diff options
context:
space:
mode:
Diffstat (limited to 'patches/server/0297-Prevent-consuming-the-wrong-itemstack.patch')
-rw-r--r--patches/server/0297-Prevent-consuming-the-wrong-itemstack.patch45
1 files changed, 45 insertions, 0 deletions
diff --git a/patches/server/0297-Prevent-consuming-the-wrong-itemstack.patch b/patches/server/0297-Prevent-consuming-the-wrong-itemstack.patch
new file mode 100644
index 0000000000..cb2edff807
--- /dev/null
+++ b/patches/server/0297-Prevent-consuming-the-wrong-itemstack.patch
@@ -0,0 +1,45 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: kickash32 <[email protected]>
+Date: Mon, 19 Aug 2019 19:42:35 +0500
+Subject: [PATCH] Prevent consuming the wrong itemstack
+
+
+diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
+index e047911c7faa3cdcd3df8899857fcadf3eec3d89..f13fb8d408e02e3c561e8f2b9c823c13033b4f94 100644
+--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
++++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
+@@ -3855,9 +3855,14 @@ public abstract class LivingEntity extends Entity implements Attackable {
+ }
+
+ public void startUsingItem(InteractionHand hand) {
++ // Paper start - Prevent consuming the wrong itemstack
++ this.startUsingItem(hand, false);
++ }
++ public void startUsingItem(InteractionHand hand, boolean forceUpdate) {
++ // Paper end - Prevent consuming the wrong itemstack
+ ItemStack itemstack = this.getItemInHand(hand);
+
+- if (!itemstack.isEmpty() && !this.isUsingItem()) {
++ if (!itemstack.isEmpty() && !this.isUsingItem() || forceUpdate) { // Paper - Prevent consuming the wrong itemstack
+ this.useItem = itemstack;
+ this.useItemRemaining = itemstack.getUseDuration(this);
+ if (!this.level().isClientSide) {
+@@ -3942,6 +3947,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
+ this.releaseUsingItem();
+ } else {
+ if (!this.useItem.isEmpty() && this.isUsingItem()) {
++ this.startUsingItem(this.getUsedItemHand(), true); // Paper - Prevent consuming the wrong itemstack
+ this.triggerItemUseEffects(this.useItem, 16);
+ // CraftBukkit start - fire PlayerItemConsumeEvent
+ ItemStack itemstack;
+@@ -3976,8 +3982,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
+ }
+
+ this.stopUsingItem();
+- // Paper start - if the replacement is anything but the default, update the client inventory
+- if (this instanceof ServerPlayer && !com.google.common.base.Objects.equal(defaultReplacement, itemstack)) {
++ // Paper start
++ if (this instanceof ServerPlayer) {
+ ((ServerPlayer) this).getBukkitEntity().updateInventory();
+ }
+ // Paper end