diff --git a/patches/server/0242-Option-for-sponges-to-work-on-lava.patch b/patches/server/0242-Option-for-sponges-to-work-on-lava.patch new file mode 100644 index 000000000..bac9684aa --- /dev/null +++ b/patches/server/0242-Option-for-sponges-to-work-on-lava.patch @@ -0,0 +1,35 @@ +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 + + +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 5b10e1110f938745c8f9ed0b55960566bc720c30..c97fddfc680a9d1934c751e0e87e287dd9b9c640 100644 +--- a/src/main/java/net/minecraft/world/level/block/SpongeBlock.java ++++ b/src/main/java/net/minecraft/world/level/block/SpongeBlock.java +@@ -74,7 +74,7 @@ public class SpongeBlock extends Block { + // CraftBukkit end + Material material = iblockdata.getMaterial(); + +- if (fluid.is((Tag) FluidTags.WATER)) { ++ if (fluid.is(FluidTags.WATER) || (world.purpurConfig.spongeAbsorbsLava && fluid.is(FluidTags.LAVA))) { + if (iblockdata.getBlock() instanceof BucketPickup && !((BucketPickup) iblockdata.getBlock()).pickupBlock(blockList, blockposition2, iblockdata).isEmpty()) { // CraftBukkit + ++i; + if (j < world.purpurConfig.spongeAbsorptionRadius) { // Purpur +diff --git a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +index 538f9d91fddd374f7ab84db300f4afdba352d1db..5ec142cf35268a6a9fa9432dd665b40757ed6356 100644 +--- a/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java ++++ b/src/main/java/net/pl3x/purpur/PurpurWorldConfig.java +@@ -928,9 +928,11 @@ public class PurpurWorldConfig { + + public int spongeAbsorptionArea = 64; + public int spongeAbsorptionRadius = 6; ++ public boolean spongeAbsorbsLava = 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); + } + + public float stonecutterDamage = 0.0F;