From a845e6c3e53b72cdca3e30bff8f174b115dcbc7f Mon Sep 17 00:00:00 2001 From: slprime <31038811+slprime@users.noreply.github.com> Date: Sat, 12 Sep 2026 23:41:17 +0300 Subject: [PATCH] Registry NEI Fluids in Server (#1033) --- src/main/java/codechicken/nei/NEIModContainer.java | 1 + src/main/java/codechicken/nei/ServerHandler.java | 10 ++++++++++ src/main/java/codechicken/nei/api/ItemInfo.java | 9 ++++++--- .../codechicken/nei/item/FluidDisplayRenderer.java | 3 +++ .../java/codechicken/nei/item/ItemFluidDisplay.java | 6 +----- src/main/java/codechicken/nei/recipe/StackInfo.java | 4 ++++ 6 files changed, 25 insertions(+), 8 deletions(-) diff --git a/src/main/java/codechicken/nei/NEIModContainer.java b/src/main/java/codechicken/nei/NEIModContainer.java index ff1dcfe9..9839677f 100644 --- a/src/main/java/codechicken/nei/NEIModContainer.java +++ b/src/main/java/codechicken/nei/NEIModContainer.java @@ -102,6 +102,7 @@ public class NEIModContainer extends DummyModContainer { gregTech5Loaded = Loader.isModLoaded("gregtech") && !Loader.isModLoaded("gregapi_post"); gtnhLibLoaded = Loader.isModLoaded("gtnhlib"); cubicChunksLoaded = Loader.isModLoaded("cubicchunks"); + ServerHandler.preInit(); if (CommonUtils.isClient()) ClientHandler.preInit(); asmDataTable = event.getAsmData(); } diff --git a/src/main/java/codechicken/nei/ServerHandler.java b/src/main/java/codechicken/nei/ServerHandler.java index c862ef01..40c81a61 100644 --- a/src/main/java/codechicken/nei/ServerHandler.java +++ b/src/main/java/codechicken/nei/ServerHandler.java @@ -10,6 +10,7 @@ import net.minecraftforge.event.world.WorldEvent; import codechicken.core.CommonUtils; import codechicken.lib.packet.PacketCustom; +import codechicken.nei.item.ItemFluidDisplay; import cpw.mods.fml.common.FMLCommonHandler; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerChangedDimensionEvent; @@ -18,6 +19,7 @@ import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerLoggedOutEvent; import cpw.mods.fml.common.gameevent.PlayerEvent.PlayerRespawnEvent; import cpw.mods.fml.common.gameevent.TickEvent; import cpw.mods.fml.common.gameevent.TickEvent.Phase; +import cpw.mods.fml.common.registry.GameRegistry; public class ServerHandler { @@ -31,6 +33,14 @@ public class ServerHandler { NEIActions.init(); } + public static void preInit() { + registerFluidDisplayItem(); + } + + private static void registerFluidDisplayItem() { + GameRegistry.registerItem(new ItemFluidDisplay(), "neiFluidDisplay"); + } + @SubscribeEvent public void tickEvent(TickEvent.WorldTickEvent event) { if (event.phase == Phase.START && !event.world.isRemote diff --git a/src/main/java/codechicken/nei/api/ItemInfo.java b/src/main/java/codechicken/nei/api/ItemInfo.java index 623499c0..07495ef2 100644 --- a/src/main/java/codechicken/nei/api/ItemInfo.java +++ b/src/main/java/codechicken/nei/api/ItemInfo.java @@ -36,6 +36,7 @@ import net.minecraft.util.MovingObjectPosition; import net.minecraft.util.RegistryNamespaced; import net.minecraft.world.World; import net.minecraft.world.biome.BiomeGenBase; +import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.common.BiomeDictionary; import net.minecraftforge.common.IShearable; import net.minecraftforge.oredict.OreDictionary; @@ -60,6 +61,7 @@ import codechicken.nei.config.HandlerDumper; import codechicken.nei.config.ItemPanelDumper; import codechicken.nei.config.RegistryDumper; import codechicken.nei.guihook.GuiContainerManager; +import codechicken.nei.item.FluidDisplayRenderer; import codechicken.nei.item.ItemFluidDisplay; import codechicken.nei.recipe.BrewingRecipeHandler; import codechicken.nei.recipe.RecipeItemInputHandler; @@ -134,7 +136,7 @@ public class ItemInfo { public static void preInit() { addMobSpawnerItem(); - addFluidDisplayItem(); + setupFluidDisplayItemClient(); } public static void load() { @@ -320,8 +322,9 @@ public class ItemInfo { GameDataManipulator.replaceItem(Block.getIdFromBlock(Blocks.mob_spawner), new ItemMobSpawner()); } - private static void addFluidDisplayItem() { - GameRegistry.registerItem(new ItemFluidDisplay(), "neiFluidDisplay"); + private static void setupFluidDisplayItemClient() { + ItemFluidDisplay.INSTANCE.setCreativeTab(ItemFluidDisplay.tabFluids); + MinecraftForgeClient.registerItemRenderer(ItemFluidDisplay.INSTANCE, new FluidDisplayRenderer()); } private static void addInfiniteHandlers() { diff --git a/src/main/java/codechicken/nei/item/FluidDisplayRenderer.java b/src/main/java/codechicken/nei/item/FluidDisplayRenderer.java index b14a0f3b..5f9fd6bd 100644 --- a/src/main/java/codechicken/nei/item/FluidDisplayRenderer.java +++ b/src/main/java/codechicken/nei/item/FluidDisplayRenderer.java @@ -12,7 +12,10 @@ import net.minecraftforge.client.IItemRenderer; import org.lwjgl.opengl.GL11; import codechicken.nei.util.ReadableNumberConverter; +import cpw.mods.fml.relauncher.Side; +import cpw.mods.fml.relauncher.SideOnly; +@SideOnly(Side.CLIENT) public class FluidDisplayRenderer implements IItemRenderer { @Override diff --git a/src/main/java/codechicken/nei/item/ItemFluidDisplay.java b/src/main/java/codechicken/nei/item/ItemFluidDisplay.java index d58585d7..5391fdca 100644 --- a/src/main/java/codechicken/nei/item/ItemFluidDisplay.java +++ b/src/main/java/codechicken/nei/item/ItemFluidDisplay.java @@ -10,7 +10,6 @@ import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.IIcon; -import net.minecraftforge.client.MinecraftForgeClient; import net.minecraftforge.fluids.Fluid; import net.minecraftforge.fluids.FluidRegistry; import net.minecraftforge.fluids.FluidStack; @@ -40,12 +39,9 @@ public class ItemFluidDisplay extends Item implements IFluidContainerItem { }; public ItemFluidDisplay() { - setMaxStackSize(1); setUnlocalizedName("nei.fluidDisplay"); + setMaxStackSize(1); INSTANCE = this; - - setCreativeTab(tabFluids); - MinecraftForgeClient.registerItemRenderer(this, new FluidDisplayRenderer()); } public static ItemStack createStack(FluidStack fluidStack) { diff --git a/src/main/java/codechicken/nei/recipe/StackInfo.java b/src/main/java/codechicken/nei/recipe/StackInfo.java index e0a4b81a..1adeba71 100644 --- a/src/main/java/codechicken/nei/recipe/StackInfo.java +++ b/src/main/java/codechicken/nei/recipe/StackInfo.java @@ -150,6 +150,10 @@ public class StackInfo { } public static synchronized FluidStack getFluid(ItemStack stack) { + if (stack == null) { + return null; + } + ItemStackKey key = new ItemStackKey(stack); FluidStack fluid = fluidcache.get(key);