Files
Purpur/patches/server/0200-Option-for-sponges-to-work-on-lava-and-mud.patch
2023-12-25 20:15:34 -08:00

50 lines
2.9 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: 12emin34 <macanovic.emin@gmail.com>
Date: Sat, 7 Aug 2021 20:23:31 +0200
Subject: [PATCH] Option for sponges to work on lava and mud
Co-authored by: granny <granny@purpurmc.org>
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 1e2860c910db8b2b6a73a67d040528df2c44f5f5..5cbbc7e818ed2e82a2ab17d7f3be35f2fe8c3c21 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1014,9 +1014,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;