From 2c243626f612be4e59933ed76661e72329c3613b Mon Sep 17 00:00:00 2001 From: DBotThePony Date: Sat, 6 May 2023 00:26:28 +0700 Subject: [PATCH] Fix fluids without sound event causing exception in tryFillContainer and tryEmptyContainer (#9445) --- .../net/minecraftforge/fluids/FluidUtil.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/minecraftforge/fluids/FluidUtil.java b/src/main/java/net/minecraftforge/fluids/FluidUtil.java index ad593e02b4..5956ab9c79 100644 --- a/src/main/java/net/minecraftforge/fluids/FluidUtil.java +++ b/src/main/java/net/minecraftforge/fluids/FluidUtil.java @@ -138,7 +138,11 @@ public class FluidUtil if (player != null) { SoundEvent soundevent = simulatedTransfer.getFluid().getFluidType().getSound(simulatedTransfer, SoundActions.BUCKET_FILL); - player.level.playSound(null, player.getX(), player.getY() + 0.5, player.getZ(), soundevent, SoundSource.BLOCKS, 1.0F, 1.0F); + + if (soundevent != null) + { + player.level.playSound(null, player.getX(), player.getY() + 0.5, player.getZ(), soundevent, SoundSource.BLOCKS, 1.0F, 1.0F); + } } } else @@ -186,7 +190,11 @@ public class FluidUtil if (doDrain && player != null) { SoundEvent soundevent = transfer.getFluid().getFluidType().getSound(transfer, SoundActions.BUCKET_EMPTY); - player.level.playSound(null, player.getX(), player.getY() + 0.5, player.getZ(), soundevent, SoundSource.BLOCKS, 1.0F, 1.0F); + + if (soundevent != null) + { + player.level.playSound(null, player.getX(), player.getY() + 0.5, player.getZ(), soundevent, SoundSource.BLOCKS, 1.0F, 1.0F); + } } ItemStack resultContainer = containerFluidHandler.getContainer(); @@ -596,7 +604,12 @@ public class FluidUtil if (!result.isEmpty()) { SoundEvent soundevent = resource.getFluid().getFluidType().getSound(resource, SoundActions.BUCKET_EMPTY); - level.playSound(player, pos, soundevent, SoundSource.BLOCKS, 1.0F, 1.0F); + + if (soundevent != null) + { + level.playSound(player, pos, soundevent, SoundSource.BLOCKS, 1.0F, 1.0F); + } + return true; } }