From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: 12emin34 Date: Sat, 7 Aug 2021 20:23:31 +0200 Subject: [PATCH] Option for sponges to work on lava and mud Co-authored by: granny diff --git a/src/main/java/net/minecraft/world/level/block/SpongeBlock.java b/src/main/java/net/minecraft/world/level/block/SpongeBlock.java index 6469f5e25673b4e20cf0b520b28b14b2eda9130c..9e4146ecd36ff2698ee951660ed88290c80fd8f7 100644 --- a/src/main/java/net/minecraft/world/level/block/SpongeBlock.java +++ b/src/main/java/net/minecraft/world/level/block/SpongeBlock.java @@ -77,7 +77,7 @@ public class SpongeBlock extends Block { FluidState fluid = blockList.getFluidState(blockposition1); // CraftBukkit end - if (!fluid.is(FluidTags.WATER)) { + if (!fluid.is(FluidTags.WATER) && (!world.purpurConfig.spongeAbsorbsLava || !fluid.is(FluidTags.LAVA)) && (!world.purpurConfig.spongeAbsorbsWaterFromMud || !iblockdata.is(Blocks.MUD))) { // Purpur return false; } else { Block block = iblockdata.getBlock(); @@ -92,6 +92,10 @@ public class SpongeBlock extends Block { if (iblockdata.getBlock() instanceof LiquidBlock) { blockList.setBlock(blockposition1, Blocks.AIR.defaultBlockState(), 3); // CraftBukkit + // Purpur start + } else if (iblockdata.is(Blocks.MUD)) { + blockList.setBlock(blockposition1, Blocks.CLAY.defaultBlockState(), 3); + // Purpur end } else { if (!iblockdata.is(Blocks.KELP) && !iblockdata.is(Blocks.KELP_PLANT) && !iblockdata.is(Blocks.SEAGRASS) && !iblockdata.is(Blocks.TALL_SEAGRASS)) { return false; diff --git a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java index 3c6a1dfe949d8c7347ad4990a5e148b74445a8d2..b96a936a584c21832a7890716743f1c918f2264d 100644 --- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java +++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java @@ -940,9 +940,13 @@ public class PurpurWorldConfig { public int spongeAbsorptionArea = 65; public int spongeAbsorptionRadius = 6; + public boolean spongeAbsorbsLava = false; + public boolean spongeAbsorbsWaterFromMud = false; private void spongeSettings() { spongeAbsorptionArea = getInt("blocks.sponge.absorption.area", spongeAbsorptionArea); spongeAbsorptionRadius = getInt("blocks.sponge.absorption.radius", spongeAbsorptionRadius); + spongeAbsorbsLava = getBoolean("blocks.sponge.absorbs-lava", spongeAbsorbsLava); + spongeAbsorbsWaterFromMud = getBoolean("blocks.sponge.absorbs-water-from-mud", spongeAbsorbsWaterFromMud); } public boolean turtleEggsBreakFromExpOrbs = true;