ForgePatch/patches/minecraft/net/minecraft/inventory/container/ContainerType.java.patch

27 lines
1.5 KiB
Diff

--- a/net/minecraft/inventory/container/ContainerType.java
+++ b/net/minecraft/inventory/container/ContainerType.java
@@ -5,7 +5,7 @@
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
-public class ContainerType<T extends Container> {
+public class ContainerType<T extends Container> extends net.minecraftforge.registries.ForgeRegistryEntry<ContainerType<?>> implements net.minecraftforge.common.extensions.IForgeContainerType<T> {
public static final ContainerType<ChestContainer> field_221507_a = func_221505_a("generic_9x1", ChestContainer::func_216986_a);
public static final ContainerType<ChestContainer> field_221508_b = func_221505_a("generic_9x2", ChestContainer::func_216987_b);
public static final ContainerType<ChestContainer> field_221509_c = func_221505_a("generic_9x3", ChestContainer::func_216988_c);
@@ -45,6 +45,14 @@
public T func_221506_a(int p_221506_1_, PlayerInventory p_221506_2_) {
return this.field_221530_x.create(p_221506_1_, p_221506_2_);
}
+
+ @Override
+ public T create(int windowId, PlayerInventory playerInv, net.minecraft.network.PacketBuffer extraData) {
+ if (this.field_221530_x instanceof net.minecraftforge.fml.network.IContainerFactory) {
+ return ((net.minecraftforge.fml.network.IContainerFactory<T>) this.field_221530_x).create(windowId, playerInv, extraData);
+ }
+ return func_221506_a(windowId, playerInv);
+ }
public interface IFactory<T extends Container> {
@OnlyIn(Dist.CLIENT)