From be1698bb1554f9c8fa2f58e32b9ab70bc4385e60 Mon Sep 17 00:00:00 2001 From: sciwhiz12 Date: Mon, 20 Sep 2021 07:35:55 +0800 Subject: [PATCH] Move ItemStack#forgeInit call earlier to allow earlier capability queries (#8096) --- .../minecraft/world/item/ItemStack.java.patch | 16 ++++------------ .../common/capabilities/CapabilityProvider.java | 2 +- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/patches/minecraft/net/minecraft/world/item/ItemStack.java.patch b/patches/minecraft/net/minecraft/world/item/ItemStack.java.patch index 27a4ddb0a7..0ccd711ee8 100644 --- a/patches/minecraft/net/minecraft/world/item/ItemStack.java.patch +++ b/patches/minecraft/net/minecraft/world/item/ItemStack.java.patch @@ -19,7 +19,7 @@ private static final Logger f_41585_ = LogManager.getLogger(); public static final ItemStack f_41583_ = new ItemStack((Item)null); public static final DecimalFormat f_41584_ = Util.m_137469_(new DecimalFormat("#.##"), (p_41704_) -> { -@@ -127,14 +_,19 @@ +@@ -127,10 +_,15 @@ p_41606_.ifPresent(this::m_41751_); } @@ -34,16 +34,12 @@ + this.f_41589_ = p_41604_ == null ? null : p_41604_.m_5456_(); + this.delegate = p_41604_ == null ? null : p_41604_.m_5456_().delegate; + this.f_41587_ = p_41605_; ++ this.forgeInit(); + if (this.f_41589_ != null && this.f_41589_.isDamageable(this)) { this.m_41721_(this.m_41773_()); } - this.m_41617_(); -+ this.forgeInit(); - } - - private void m_41617_() { -@@ -143,18 +_,23 @@ +@@ -143,14 +_,19 @@ } private ItemStack(CompoundTag p_41608_) { @@ -57,17 +53,13 @@ this.f_41590_ = p_41608_.m_128469_("tag"); this.m_41720_().m_142312_(this.f_41590_); } ++ this.forgeInit(); - if (this.m_41720_().m_41465_()) { + if (this.m_41720_().isDamageable(this)) { this.m_41721_(this.m_41773_()); } - this.m_41617_(); -+ this.forgeInit(); - } - - public static ItemStack m_41712_(CompoundTag p_41713_) { @@ -185,7 +_,7 @@ } diff --git a/src/main/java/net/minecraftforge/common/capabilities/CapabilityProvider.java b/src/main/java/net/minecraftforge/common/capabilities/CapabilityProvider.java index f5963e35c3..1418106405 100644 --- a/src/main/java/net/minecraftforge/common/capabilities/CapabilityProvider.java +++ b/src/main/java/net/minecraftforge/common/capabilities/CapabilityProvider.java @@ -90,7 +90,7 @@ public abstract class CapabilityProvider> implem { if (isLazy && !initialized) { - doGatherCapabilities(lazyParentSupplier.get()); + doGatherCapabilities(lazyParentSupplier == null ? null : lazyParentSupplier.get()); if (lazyData != null) { deserializeCaps(lazyData);