From 867764c2002d31db49f15e02cf0abc5dfc2f0c92 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Mon, 14 Jun 2021 15:19:27 +0800 Subject: [PATCH] Guard against unregistered fluid renderers Signed-off-by: shedaniel --- .../hooks/fabric/FluidStackHooksImpl.java | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/fabric/src/main/java/me/shedaniel/architectury/hooks/fabric/FluidStackHooksImpl.java b/fabric/src/main/java/me/shedaniel/architectury/hooks/fabric/FluidStackHooksImpl.java index cb56000a..1d7bb2ec 100644 --- a/fabric/src/main/java/me/shedaniel/architectury/hooks/fabric/FluidStackHooksImpl.java +++ b/fabric/src/main/java/me/shedaniel/architectury/hooks/fabric/FluidStackHooksImpl.java @@ -116,7 +116,9 @@ public class FluidStackHooksImpl { @Nullable public static TextureAtlasSprite getStillTexture(@Nullable BlockAndTintGetter level, @Nullable BlockPos pos, @NotNull FluidState state) { if (state.getType() == Fluids.EMPTY) return null; - TextureAtlasSprite[] sprites = FluidRenderHandlerRegistry.INSTANCE.get(state.getType()).getFluidSprites(level, pos, state); + FluidRenderHandler handler = FluidRenderHandlerRegistry.INSTANCE.get(state.getType()); + if (handler == null) return null; + TextureAtlasSprite[] sprites = handler.getFluidSprites(level, pos, state); if (sprites == null) return null; return sprites[0]; } @@ -125,7 +127,9 @@ public class FluidStackHooksImpl { @Nullable public static TextureAtlasSprite getStillTexture(@NotNull FluidStack stack) { if (stack.getFluid() == Fluids.EMPTY) return null; - TextureAtlasSprite[] sprites = FluidRenderHandlerRegistry.INSTANCE.get(stack.getFluid()).getFluidSprites(null, null, stack.getFluid().defaultFluidState()); + FluidRenderHandler handler = FluidRenderHandlerRegistry.INSTANCE.get(stack.getFluid()); + if (handler == null) return null; + TextureAtlasSprite[] sprites = handler.getFluidSprites(null, null, stack.getFluid().defaultFluidState()); if (sprites == null) return null; return sprites[0]; } @@ -134,7 +138,9 @@ public class FluidStackHooksImpl { @Nullable public static TextureAtlasSprite getStillTexture(@NotNull Fluid fluid) { if (fluid == Fluids.EMPTY) return null; - TextureAtlasSprite[] sprites = FluidRenderHandlerRegistry.INSTANCE.get(fluid).getFluidSprites(null, null, fluid.defaultFluidState()); + FluidRenderHandler handler = FluidRenderHandlerRegistry.INSTANCE.get(fluid); + if (handler == null) return null; + TextureAtlasSprite[] sprites = handler.getFluidSprites(null, null, fluid.defaultFluidState()); if (sprites == null) return null; return sprites[0]; } @@ -165,7 +171,9 @@ public class FluidStackHooksImpl { @Nullable public static TextureAtlasSprite getFlowingTexture(@NotNull Fluid fluid) { if (fluid == Fluids.EMPTY) return null; - TextureAtlasSprite[] sprites = FluidRenderHandlerRegistry.INSTANCE.get(fluid).getFluidSprites(null, null, fluid.defaultFluidState()); + FluidRenderHandler handler = FluidRenderHandlerRegistry.INSTANCE.get(fluid); + if (handler == null) return null; + TextureAtlasSprite[] sprites = handler.getFluidSprites(null, null, fluid.defaultFluidState()); if (sprites == null) return null; return sprites[1]; }