Fix missing patch for Item.onInventoryTick. Closes #9812

This commit is contained in:
LexManos committed 2024-01-13 12:38:56 -08:00
1 parent de13ba8ab8
commit 88d2dc6c8f
2 files changed
+24 -17

No files matched your search

@@ -19,15 +19,21 @@
if (p_36049_.m_41782_()) {
itemstack.m_41751_(p_36049_.m_41783_().m_6426_());
}
@@ -229,7 +_,7 @@
}
}
}
-
+ f_35975_.forEach(e -> e.onArmorTick(f_35978_.m_9236_(), f_35978_));
@@ -222,11 +_,13 @@
}
public boolean m_36054_(ItemStack p_36055_) {
public void m_36068_() {
+ int idx = 0;
for(NonNullList<ItemStack> nonnulllist : this.f_35979_) {
for(int i = 0; i < nonnulllist.size(); ++i) {
if (!nonnulllist.get(i).m_41619_()) {
- nonnulllist.get(i).m_41666_(this.f_35978_.m_9236_(), this.f_35978_, i, this.f_35977_ == i);
+ nonnulllist.get(i).onInventoryTick(this.f_35978_.m_9236_(), this.f_35978_, idx, this.f_35977_);
}
+ idx++;
}
}
@@ -277,6 +_,8 @@
} catch (Throwable throwable) {
CrashReport crashreport = CrashReport.m_127521_(throwable, "Adding item to inventory");
@@ -340,16 +340,17 @@ public interface IForgeItem
*/
default void onInventoryTick(ItemStack stack, Level level, Player player, int slotIndex, int selectedIndex)
{
// For compatibility reasons we have to use non-local index values, I think this is a vanilla bug but lets maintain compatibility
int vanillaIndex = slotIndex;
if (slotIndex >= 36) {
vanillaIndex -= 36;
if (vanillaIndex >= 4)
vanillaIndex -= 4;
else
onArmorTick(stack, level, player);
}
stack.inventoryTick(level, player, vanillaIndex, selectedIndex == vanillaIndex);
// For compatibility reasons we have to use non-local index values, I think this is a vanilla bug but lets maintain compatibility
var inv = player.getInventory();
int vanillaIndex = slotIndex;
if (slotIndex >= inv.items.size()) {
vanillaIndex -= inv.items.size();
if (vanillaIndex >= inv.armor.size())
vanillaIndex -= inv.armor.size();
else
onArmorTick(stack, level, player);
}
stack.inventoryTick(level, player, vanillaIndex, selectedIndex == vanillaIndex);
}
/**