From 6f37c3e39b120532adc2f584c7f0f39d31706f10 Mon Sep 17 00:00:00 2001 From: galacticwarrior9 Date: Thu, 13 Jul 2023 21:32:13 +0100 Subject: [PATCH] Determine lava and water fluid explosion resistance by their block explosion resistance When selecting which explosion resistance to use for lava and water, vanilla selects the highest value between their block explosion resistance and fluid explosion resistance. Problems emerge when we want to reduce the explosion resistance of water or lava, since the fluid explosion resistance is hardcoded to return 100.0F and can't be changed by a plugin. This simply makes the fluid explosion resistance the same as the block explosion resistance, which allows plugin to change the value. Since both are the same in vanilla, this has no side effects on servers that do not need to do this. --- .../minecraft/world/level/material/LavaFluid.java.patch | 9 +++++++++ .../minecraft/world/level/material/WaterFluid.java.patch | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/paper-server/patches/sources/net/minecraft/world/level/material/LavaFluid.java.patch b/paper-server/patches/sources/net/minecraft/world/level/material/LavaFluid.java.patch index 88889a233..de343949f 100644 --- a/paper-server/patches/sources/net/minecraft/world/level/material/LavaFluid.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/level/material/LavaFluid.java.patch @@ -42,3 +42,12 @@ } this.fizz(world, pos); +@@ -214,7 +233,7 @@ + + @Override + protected float getExplosionResistance() { +- return 100.0F; ++ return Blocks.LAVA.getExplosionResistance(); // Paper - Get explosion resistance from actual block + } + + @Override diff --git a/paper-server/patches/sources/net/minecraft/world/level/material/WaterFluid.java.patch b/paper-server/patches/sources/net/minecraft/world/level/material/WaterFluid.java.patch index 433ec72be..f615848de 100644 --- a/paper-server/patches/sources/net/minecraft/world/level/material/WaterFluid.java.patch +++ b/paper-server/patches/sources/net/minecraft/world/level/material/WaterFluid.java.patch @@ -15,3 +15,12 @@ protected void beforeDestroyingBlock(LevelAccessor world, BlockPos pos, BlockState state) { BlockEntity blockEntity = state.hasBlockEntity() ? world.getBlockEntity(pos) : null; Block.dropResources(state, world, pos, blockEntity); +@@ -119,7 +126,7 @@ + + @Override + protected float getExplosionResistance() { +- return 100.0F; ++ return Blocks.WATER.getExplosionResistance(); // Paper - Get explosion resistance from actual block + } + + @Override