From ce1c54d44bad465c165fdb79dc149bcad7c70325 Mon Sep 17 00:00:00 2001 From: BlayTheNinth <1933180+BlayTheNinth@users.noreply.github.com> Date: Mon, 19 Aug 2024 21:28:18 +0200 Subject: [PATCH] fix: Fix crash on dedicated server due to fluid render handler --- .../net/blay09/mods/balm/fabric/FabricBalm.java | 9 +++++++++ .../blay09/mods/balm/fabric/FabricBalmProxy.java | 13 +++++++++++++ .../mods/balm/fabric/FabricBalmRegistries.java | 3 +-- .../fabric/client/FabricBalmClientProxy.java | 16 ++++++++++++++++ 4 files changed, 39 insertions(+), 2 deletions(-) create mode 100644 fabric/src/main/java/net/blay09/mods/balm/fabric/FabricBalmProxy.java create mode 100644 fabric/src/main/java/net/blay09/mods/balm/fabric/client/FabricBalmClientProxy.java diff --git a/fabric/src/main/java/net/blay09/mods/balm/fabric/FabricBalm.java b/fabric/src/main/java/net/blay09/mods/balm/fabric/FabricBalm.java index 7462356b..c37a6476 100644 --- a/fabric/src/main/java/net/blay09/mods/balm/fabric/FabricBalm.java +++ b/fabric/src/main/java/net/blay09/mods/balm/fabric/FabricBalm.java @@ -7,6 +7,7 @@ import net.blay09.mods.balm.api.entity.BalmEntity; import net.blay09.mods.balm.api.fluid.BalmFluidTankProvider; import net.blay09.mods.balm.api.fluid.FluidTank; +import net.blay09.mods.balm.api.proxy.SidedProxy; import net.blay09.mods.balm.config.ExampleConfig; import net.blay09.mods.balm.fabric.fluid.BalmFluidStorage; import net.blay09.mods.balm.fabric.provider.FabricBalmProviders; @@ -19,8 +20,12 @@ import net.minecraft.resources.ResourceLocation; import net.minecraft.world.Container; +import static net.blay09.mods.balm.api.Balm.sidedProxy; + public class FabricBalm implements ModInitializer { + private static final SidedProxy proxy = sidedProxy("net.blay09.mods.balm.fabric.FabricBalmProxy", "net.blay09.mods.balm.fabric.client.FabricBalmClientProxy"); + @Override public void onInitialize() { ((FabricBalmHooks) Balm.getHooks()).initialize(); @@ -58,4 +63,8 @@ public void onInitialize() { Balm.initializeIfLoaded("team_reborn_energy", "net.blay09.mods.balm.fabric.compat.energy.RebornEnergy"); } + + public static FabricBalmProxy getProxy() { + return proxy.get(); + } } diff --git a/fabric/src/main/java/net/blay09/mods/balm/fabric/FabricBalmProxy.java b/fabric/src/main/java/net/blay09/mods/balm/fabric/FabricBalmProxy.java new file mode 100644 index 00000000..ae70df37 --- /dev/null +++ b/fabric/src/main/java/net/blay09/mods/balm/fabric/FabricBalmProxy.java @@ -0,0 +1,13 @@ +package net.blay09.mods.balm.fabric; + +import net.blay09.mods.balm.fabric.fluid.SimpleMilkFluid; +import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.level.material.Fluid; + +public class FabricBalmProxy { + public Fluid enableMilkFluid() { + return Registry.register(BuiltInRegistries.FLUID, new ResourceLocation("balm-fabric", "milk"), new SimpleMilkFluid()); + } +} diff --git a/fabric/src/main/java/net/blay09/mods/balm/fabric/FabricBalmRegistries.java b/fabric/src/main/java/net/blay09/mods/balm/fabric/FabricBalmRegistries.java index d340bb48..cf89be78 100644 --- a/fabric/src/main/java/net/blay09/mods/balm/fabric/FabricBalmRegistries.java +++ b/fabric/src/main/java/net/blay09/mods/balm/fabric/FabricBalmRegistries.java @@ -74,8 +74,7 @@ public TagKey getItemTag(ResourceLocation key) { @Override public void enableMilkFluid() { - milkFluid = Registry.register(BuiltInRegistries.FLUID, new ResourceLocation("balm-fabric", "milk"), new SimpleMilkFluid()); - FluidRenderHandlerRegistry.INSTANCE.register(milkFluid, new SimpleFluidRenderHandler(SimpleFluidRenderHandler.WATER_STILL, SimpleFluidRenderHandler.WATER_FLOWING, 0xFFFFFFFF)); + milkFluid = FabricBalm.getProxy().enableMilkFluid(); } @Override diff --git a/fabric/src/main/java/net/blay09/mods/balm/fabric/client/FabricBalmClientProxy.java b/fabric/src/main/java/net/blay09/mods/balm/fabric/client/FabricBalmClientProxy.java new file mode 100644 index 00000000..0b918135 --- /dev/null +++ b/fabric/src/main/java/net/blay09/mods/balm/fabric/client/FabricBalmClientProxy.java @@ -0,0 +1,16 @@ +package net.blay09.mods.balm.fabric.client; + +import net.blay09.mods.balm.fabric.FabricBalmProxy; +import net.fabricmc.fabric.api.client.render.fluid.v1.FluidRenderHandlerRegistry; +import net.fabricmc.fabric.api.client.render.fluid.v1.SimpleFluidRenderHandler; +import net.minecraft.world.level.material.Fluid; + +public class FabricBalmClientProxy extends FabricBalmProxy { + + @Override + public Fluid enableMilkFluid() { + final var fluid = super.enableMilkFluid(); + FluidRenderHandlerRegistry.INSTANCE.register(fluid, new SimpleFluidRenderHandler(SimpleFluidRenderHandler.WATER_STILL, SimpleFluidRenderHandler.WATER_FLOWING, 0xFFFFFFFF)); + return fluid; + } +}