From 4e5eecac12813d53bb4c1e06dcf3b829b726ac5d Mon Sep 17 00:00:00 2001 From: LexManos Date: Wed, 29 Mar 2023 18:45:22 -0700 Subject: [PATCH] Deprecate Item.onUsingTick, as vanilla provides the same function in Item.onUseTick now. Closes #9342 --- .../world/entity/LivingEntity.java.patch | 30 +++++++++++++------ .../minecraft/world/item/BrushItem.java.patch | 10 +++++++ .../world/item/CrossbowItem.java.patch | 8 +++++ .../net/minecraft/world/item/Item.java.patch | 11 ++++--- .../minecraft/world/item/ItemStack.java.patch | 2 +- .../common/extensions/IForgeItem.java | 2 ++ .../common/extensions/IForgeItemStack.java | 3 ++ .../living/LivingEntityUseItemEvent.java | 2 +- 8 files changed, 53 insertions(+), 15 deletions(-) create mode 100644 patches/minecraft/net/minecraft/world/item/BrushItem.java.patch diff --git a/patches/minecraft/net/minecraft/world/entity/LivingEntity.java.patch b/patches/minecraft/net/minecraft/world/entity/LivingEntity.java.patch index e1b6879a17..272670ce2a 100644 --- a/patches/minecraft/net/minecraft/world/entity/LivingEntity.java.patch +++ b/patches/minecraft/net/minecraft/world/entity/LivingEntity.java.patch @@ -519,25 +519,37 @@ if (itemstack.m_150930_(Items.f_42741_) && ElytraItem.m_41140_(itemstack)) { flag = true; int i = this.f_20937_ + 1; -@@ -2786,8 +_,16 @@ +@@ -2786,8 +_,11 @@ private void m_21329_() { if (this.m_6117_()) { - if (ItemStack.m_41746_(this.m_21120_(this.m_7655_()), this.f_20935_)) { - this.f_20935_ = this.m_21120_(this.m_7655_()); + ItemStack itemStack = this.m_21120_(this.m_7655_()); -+ if (net.minecraftforge.common.ForgeHooks.canContinueUsing(this.f_20935_, itemStack)) this.f_20935_ = itemStack; ++ if (net.minecraftforge.common.ForgeHooks.canContinueUsing(this.f_20935_, itemStack)) { ++ this.f_20935_ = itemStack; ++ } + if (itemStack == this.f_20935_) { -+ -+ if (!this.f_20935_.m_41619_()) { -+ f_20936_ = net.minecraftforge.event.ForgeEventFactory.onItemUseTick(this, f_20935_, f_20936_); -+ if (f_20936_ > 0) -+ f_20935_.onUsingTick(this, f_20936_); -+ } -+ this.m_142106_(this.f_20935_); } else { this.m_5810_(); +@@ -2797,12 +_,15 @@ + } + + protected void m_142106_(ItemStack p_147201_) { ++ if (!p_147201_.m_41619_()) ++ this.f_20936_ = net.minecraftforge.event.ForgeEventFactory.onItemUseTick(this, p_147201_, this.m_21212_()); ++ if (this.m_21212_() > 0) + p_147201_.m_41731_(this.f_19853_, this, this.m_21212_()); + if (this.m_21332_()) { + this.m_21137_(p_147201_, 5); + } + +- if (--this.f_20936_ == 0 && !this.f_19853_.f_46443_ && !p_147201_.m_41781_()) { ++ if (--this.f_20936_ <= 0 && !this.f_19853_.f_46443_ && !p_147201_.m_41781_()) { + this.m_8095_(); + } + @@ -2810,7 +_,7 @@ private boolean m_21332_() { diff --git a/patches/minecraft/net/minecraft/world/item/BrushItem.java.patch b/patches/minecraft/net/minecraft/world/item/BrushItem.java.patch new file mode 100644 index 0000000000..85db2a9963 --- /dev/null +++ b/patches/minecraft/net/minecraft/world/item/BrushItem.java.patch @@ -0,0 +1,10 @@ +--- a/net/minecraft/world/item/BrushItem.java ++++ b/net/minecraft/world/item/BrushItem.java +@@ -76,6 +_,7 @@ + } else { + p_273619_.m_21253_(); + } ++ super.m_5929_(p_273467_, p_273619_, p_273316_, p_273101_); //TODO: Remove in 1.20, this is only here to trigger Forge's old onUseingTick method + } + + public void m_271895_(Level p_272701_, BlockHitResult p_273758_, BlockState p_272753_, Vec3 p_272912_) { diff --git a/patches/minecraft/net/minecraft/world/item/CrossbowItem.java.patch b/patches/minecraft/net/minecraft/world/item/CrossbowItem.java.patch index f659deca02..775c70cfce 100644 --- a/patches/minecraft/net/minecraft/world/item/CrossbowItem.java.patch +++ b/patches/minecraft/net/minecraft/world/item/CrossbowItem.java.patch @@ -8,3 +8,11 @@ List list = m_40941_(p_40891_); float[] afloat = m_220023_(p_40889_.m_217043_()); +@@ -304,6 +_,7 @@ + p_40910_.m_6263_((Player)null, p_40911_.m_20185_(), p_40911_.m_20186_(), p_40911_.m_20189_(), soundevent1, SoundSource.PLAYERS, 0.5F, 1.0F); + } + } ++ super.m_5929_(p_40910_, p_40911_, p_40912_, p_40913_); //TODO: Remove in 1.20, this is only here to trigger Forge's old onUseingTick method + + } + diff --git a/patches/minecraft/net/minecraft/world/item/Item.java.patch b/patches/minecraft/net/minecraft/world/item/Item.java.patch index 96b194587d..9353707508 100644 --- a/patches/minecraft/net/minecraft/world/item/Item.java.patch +++ b/patches/minecraft/net/minecraft/world/item/Item.java.patch @@ -22,13 +22,16 @@ } /** @deprecated */ -@@ -108,6 +_,8 @@ - return this.f_204113_; +@@ -109,8 +_,11 @@ } -+ /** @deprecated Forge: Use damage source sensitive version */ -+ @Deprecated public void m_5929_(Level p_41428_, LivingEntity p_41429_, ItemStack p_41430_, int p_41431_) { ++ p_41430_.onUsingTick(p_41429_, p_41431_); + } + ++ /** @deprecated Forge: {@link net.minecraftforge.common.extensions.IForgeItem#onDestroyed(ItemEntity, DamageSource) Use damage source sensitive version} */ ++ @Deprecated + public void m_142023_(ItemEntity p_150887_) { } @@ -134,9 +_,9 @@ diff --git a/patches/minecraft/net/minecraft/world/item/ItemStack.java.patch b/patches/minecraft/net/minecraft/world/item/ItemStack.java.patch index 513c3c028b..cf2346cd2f 100644 --- a/patches/minecraft/net/minecraft/world/item/ItemStack.java.patch +++ b/patches/minecraft/net/minecraft/world/item/ItemStack.java.patch @@ -248,7 +248,7 @@ this.m_41720_().m_5929_(p_41732_, p_41733_, this, p_41734_); } -+ /** @deprecated Forge: Use damage source sensitive version */ ++ /** @deprecated Forge: {@link net.minecraftforge.common.extensions.IForgeItemStack#onDestroyed(ItemEntity, DamageSource) Use damage source sensitive version} */ + @Deprecated public void m_150924_(ItemEntity p_150925_) { this.m_41720_().m_142023_(p_150925_); diff --git a/src/main/java/net/minecraftforge/common/extensions/IForgeItem.java b/src/main/java/net/minecraftforge/common/extensions/IForgeItem.java index c6444e7738..8abdb1c7d0 100644 --- a/src/main/java/net/minecraftforge/common/extensions/IForgeItem.java +++ b/src/main/java/net/minecraftforge/common/extensions/IForgeItem.java @@ -196,7 +196,9 @@ public interface IForgeItem * @param player The Player using the item * @param count The amount of time in tick the item has been used for * continuously + * @deprecated {@link net.minecraft.world.item.Item#onUseTick(Level, LivingEntity, ItemStack, int) Implement Vanilla's Version} */ + @Deprecated(since = "1.19.4", forRemoval = true) default void onUsingTick(ItemStack stack, LivingEntity player, int count) { } diff --git a/src/main/java/net/minecraftforge/common/extensions/IForgeItemStack.java b/src/main/java/net/minecraftforge/common/extensions/IForgeItemStack.java index f15a119bd5..937119e890 100644 --- a/src/main/java/net/minecraftforge/common/extensions/IForgeItemStack.java +++ b/src/main/java/net/minecraftforge/common/extensions/IForgeItemStack.java @@ -249,7 +249,10 @@ public interface IForgeItemStack extends ICapabilitySerializable * @param player The Player using the item * @param count The amount of time in tick the item has been used for * continuously + * + * @deprecated {@link net.minecraft.world.item.ItemStack#onUseTick(Level, LivingEntity, int) Use Vanilla's Version} */ + @Deprecated(since = "1.19.4", forRemoval = true) default void onUsingTick(LivingEntity player, int count) { self().getItem().onUsingTick(self(), player, count); 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 5a1fe9dd80..be4875808d 100644 --- a/src/main/java/net/minecraftforge/event/entity/living/LivingEntityUseItemEvent.java +++ b/src/main/java/net/minecraftforge/event/entity/living/LivingEntityUseItemEvent.java @@ -61,7 +61,7 @@ public class LivingEntityUseItemEvent extends LivingEvent /** * Fired every tick that a player is 'using' an item, see {@link Start} for info. * - * Cancel the event, or set the duration or {@literal <=} 0 to cause the player to stop using the item. + * Cancel the event, or set the duration to {@literal <=} 0 to cause the player to stop using the item. * */ @Cancelable