From 7d0b07e8587b6742e046815da8aa7032eb2e4953 Mon Sep 17 00:00:00 2001 From: LexManos Date: Mon, 28 Oct 2024 14:54:39 -0700 Subject: [PATCH] Fix items with use durations of 0 being repeatedly used when use button is held down. Fixed #10150 --- .../net/minecraft/world/entity/LivingEntity.java.patch | 6 ++---- .../event/entity/living/LivingEntityUseItemEvent.java | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/patches/minecraft/net/minecraft/world/entity/LivingEntity.java.patch b/patches/minecraft/net/minecraft/world/entity/LivingEntity.java.patch index bed8da5e30..93936a9cd0 100644 --- a/patches/minecraft/net/minecraft/world/entity/LivingEntity.java.patch +++ b/patches/minecraft/net/minecraft/world/entity/LivingEntity.java.patch @@ -518,14 +518,12 @@ this.completeUsingItem(); } } -@@ -3134,8 +_,12 @@ +@@ -3134,8 +_,10 @@ public void startUsingItem(InteractionHand p_21159_) { ItemStack itemstack = this.getItemInHand(p_21159_); if (!itemstack.isEmpty() && !this.isUsingItem()) { + int duration = net.minecraftforge.event.ForgeEventFactory.onItemUseStart(this, itemstack, itemstack.getUseDuration(this)); -+ if (duration <= 0) { -+ return; -+ } ++ if (duration < 0) return; this.useItem = itemstack; - this.useItemRemaining = itemstack.getUseDuration(this); + this.useItemRemaining = duration; diff --git a/src/main/java/net/minecraftforge/event/entity/living/LivingEntityUseItemEvent.java b/src/main/java/net/minecraftforge/event/entity/living/LivingEntityUseItemEvent.java index be4875808d..6650ee6c98 100644 --- a/src/main/java/net/minecraftforge/event/entity/living/LivingEntityUseItemEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/living/LivingEntityUseItemEvent.java @@ -46,7 +46,7 @@ public class LivingEntityUseItemEvent extends LivingEvent * Drinking Potions/Milk * Guarding with a sword * - * Cancel the event, or set the duration or {@literal <=} 0 to prevent it from processing. + * Cancel the event, or set the duration or {@literal <} 0 to prevent it from processing. * */ @Cancelable