From d6b47ce4819481ec65debcdfc3a88bef5667fd13 Mon Sep 17 00:00:00 2001 From: Samsuik Date: Fri, 7 Mar 2025 14:24:09 +0000 Subject: [PATCH] Protect blocks outside the world border from explosions --- ...tect-blocks-outside-the-world-border.patch | 22 +++++++++++++++++++ .../configuration/WorldConfiguration.java | 2 ++ 2 files changed, 24 insertions(+) create mode 100644 sakura-server/minecraft-patches/features/0029-Protect-blocks-outside-the-world-border.patch diff --git a/sakura-server/minecraft-patches/features/0029-Protect-blocks-outside-the-world-border.patch b/sakura-server/minecraft-patches/features/0029-Protect-blocks-outside-the-world-border.patch new file mode 100644 index 0000000..a650e23 --- /dev/null +++ b/sakura-server/minecraft-patches/features/0029-Protect-blocks-outside-the-world-border.patch @@ -0,0 +1,22 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Samsuik +Date: Fri, 7 Mar 2025 14:21:13 +0000 +Subject: [PATCH] Protect blocks outside the world border + + +diff --git a/net/minecraft/world/level/ServerExplosion.java b/net/minecraft/world/level/ServerExplosion.java +index 451cb54da29ad7e6fc74f4a57df8493ce3e43b2d..43cf8815a04ffd5d5811be7675718084826824d5 100644 +--- a/net/minecraft/world/level/ServerExplosion.java ++++ b/net/minecraft/world/level/ServerExplosion.java +@@ -417,6 +417,11 @@ public class ServerExplosion implements Explosion { + return Optional.of(Blocks.BARRIER.getExplosionResistance()); + } + // Sakura end - protect scaffolding from creepers ++ // Sakura start - protect blocks outside the world border ++ if (this.level.sakuraConfig().cannons.explosion.protectBlocksOutsideTheWorldBorder && !this.level.getWorldBorder().isWithinBounds(pos)) { ++ return Optional.of(Blocks.BARRIER.getExplosionResistance()); ++ } ++ // Sakura end - protect blocks outside the world border + } + + return this.damageCalculator.getBlockExplosionResistance(this, this.level, pos, blockState, fluidState); diff --git a/sakura-server/src/main/java/me/samsuik/sakura/configuration/WorldConfiguration.java b/sakura-server/src/main/java/me/samsuik/sakura/configuration/WorldConfiguration.java index 671acdd..b3c81e1 100644 --- a/sakura-server/src/main/java/me/samsuik/sakura/configuration/WorldConfiguration.java +++ b/sakura-server/src/main/java/me/samsuik/sakura/configuration/WorldConfiguration.java @@ -98,6 +98,8 @@ public final class WorldConfiguration extends ConfigurationPart { public boolean explosionsHurtPlayers = true; public boolean explosionsDropItems = true; public boolean useBlockCacheAcrossExplosions = false; + @Comment("Protect blocks being destroyed outside the world border") + public boolean protectBlocksOutsideTheWorldBorder = false; } public Mechanics mechanics = new Mechanics();