From 02e82c672d7ddbca0b26844e4fa6488825cdf5ef Mon Sep 17 00:00:00 2001 From: Jonathing Date: Wed, 5 Feb 2025 12:15:37 -0500 Subject: [PATCH] Give ItemStack context to IForgeItem.getCapabilityProvider (#10404) --- .../net/minecraft/world/item/ItemStack.java.patch | 2 +- .../net/minecraftforge/common/extensions/IForgeItem.java | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/patches/minecraft/net/minecraft/world/item/ItemStack.java.patch b/patches/minecraft/net/minecraft/world/item/ItemStack.java.patch index da3dd85618..2ced7bd6f2 100644 --- a/patches/minecraft/net/minecraft/world/item/ItemStack.java.patch +++ b/patches/minecraft/net/minecraft/world/item/ItemStack.java.patch @@ -18,7 +18,7 @@ this.count = p_332766_; this.components = p_333722_; this.getItem().verifyComponentsAfterLoad(this); -+ gatherCapabilities(() -> this.item.getCapabilityProvider()); ++ gatherCapabilities(() -> this.item.getCapabilityProvider(this)); } private ItemStack(@Nullable Void p_282703_) { diff --git a/src/main/java/net/minecraftforge/common/extensions/IForgeItem.java b/src/main/java/net/minecraftforge/common/extensions/IForgeItem.java index 2954f7b98c..f411ec8ca0 100644 --- a/src/main/java/net/minecraftforge/common/extensions/IForgeItem.java +++ b/src/main/java/net/minecraftforge/common/extensions/IForgeItem.java @@ -615,9 +615,18 @@ public interface IForgeItem { /** * @return The Default Capability Provider for this item, if any. + * + * @deprecated Use the itemstack-sensitive version instead: {@link #getCapabilityProvider(ItemStack)} */ @Nullable + @Deprecated(forRemoval = true, since = "1.21.4") default ICapabilityProvider getCapabilityProvider() { return null; } + + /** @return The Default Capability Provider for this item, if any, accounting for the given itemstack. */ + @Nullable + default ICapabilityProvider getCapabilityProvider(ItemStack stack) { + return this.getCapabilityProvider(); + } }