From 3a043110cadc9f143ba258bf0516fd2865885185 Mon Sep 17 00:00:00 2001 From: Samsuik Date: Thu, 25 Sep 2025 10:56:21 +0100 Subject: [PATCH] Rename useBlockCacheAcrossExplosions --- .../configuration/WorldConfiguration.java | 4 ++-- .../ConfigurationTransformations.java | 1 + ...V12_RenameUseBlockCacheAcrossExplosions.java | 17 +++++++++++++++++ .../sakura/explosion/SpecialisedExplosion.java | 2 +- 4 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 sakura-server/src/main/java/me/samsuik/sakura/configuration/transformation/world/V12_RenameUseBlockCacheAcrossExplosions.java 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 78e1ff3..ab02553 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 @@ -28,7 +28,7 @@ import java.util.Set; public final class WorldConfiguration extends ConfigurationPart { private static final Logger LOGGER = LogUtils.getClassLogger(); - static final int CURRENT_VERSION = 11; // (when you change the version, change the comment, so it conflicts on rebases): rename filter bad nbt from spawn eggs + static final int CURRENT_VERSION = 12; // (when you change the version, change the comment, so it conflicts on rebases): rename filter bad nbt from spawn eggs private transient final ResourceLocation worldKey; WorldConfiguration(ResourceLocation worldKey) { @@ -85,7 +85,7 @@ public final class WorldConfiguration extends ConfigurationPart { public class Explosion extends ConfigurationPart { public boolean optimiseProtectedRegions = false; public boolean avoidRedundantBlockSearches = false; - public boolean useBlockCacheAcrossExplosions = false; + public boolean reuseBlockCacheAcrossExplosions = false; public Map durableMaterials = Util.make(new Reference2ObjectOpenHashMap<>(), map -> { map.put(Blocks.OBSIDIAN, new DurableMaterial(4, Blocks.COBBLESTONE.getExplosionResistance(), true)); diff --git a/sakura-server/src/main/java/me/samsuik/sakura/configuration/transformation/ConfigurationTransformations.java b/sakura-server/src/main/java/me/samsuik/sakura/configuration/transformation/ConfigurationTransformations.java index 4f41696..56bda49 100644 --- a/sakura-server/src/main/java/me/samsuik/sakura/configuration/transformation/ConfigurationTransformations.java +++ b/sakura-server/src/main/java/me/samsuik/sakura/configuration/transformation/ConfigurationTransformations.java @@ -32,6 +32,7 @@ public final class ConfigurationTransformations { V9_RenameAllowNonTntBreakingDurableBlocks.apply(versionedBuilder); V10_DurableMaterialOnlyDamagedByTnt.apply(versionedBuilder); V11_RemovePhysicsVersion.apply(versionedBuilder); + V12_RenameUseBlockCacheAcrossExplosions.apply(versionedBuilder); // ADD FUTURE VERSIONED TRANSFORMS TO versionedBuilder HERE versionedBuilder.build().apply(node); } diff --git a/sakura-server/src/main/java/me/samsuik/sakura/configuration/transformation/world/V12_RenameUseBlockCacheAcrossExplosions.java b/sakura-server/src/main/java/me/samsuik/sakura/configuration/transformation/world/V12_RenameUseBlockCacheAcrossExplosions.java new file mode 100644 index 0000000..d86a522 --- /dev/null +++ b/sakura-server/src/main/java/me/samsuik/sakura/configuration/transformation/world/V12_RenameUseBlockCacheAcrossExplosions.java @@ -0,0 +1,17 @@ +package me.samsuik.sakura.configuration.transformation.world; + +import me.samsuik.sakura.configuration.transformation.ConfigurationTransformations; +import org.spongepowered.configurate.NodePath; +import org.spongepowered.configurate.transformation.ConfigurationTransformation; + +import static org.spongepowered.configurate.transformation.TransformAction.rename; + +public final class V12_RenameUseBlockCacheAcrossExplosions { + private static final int VERSION = 12; + private static final NodePath USE_BLOCK_CACHE_ACROSS_EXPLOSIONS_PATH = NodePath.path("cannons", "explosion", "use-block-cache-across-explosions"); + private static final String NEW_NAME = "reuse-block-cache-across-explosions"; + + public static void apply(final ConfigurationTransformation.VersionedBuilder builder) { + builder.addVersion(VERSION, ConfigurationTransformations.transform(USE_BLOCK_CACHE_ACROSS_EXPLOSIONS_PATH, rename(NEW_NAME))); + } +} diff --git a/sakura-server/src/main/java/me/samsuik/sakura/explosion/SpecialisedExplosion.java b/sakura-server/src/main/java/me/samsuik/sakura/explosion/SpecialisedExplosion.java index 7471c9d..4a7d72b 100644 --- a/sakura-server/src/main/java/me/samsuik/sakura/explosion/SpecialisedExplosion.java +++ b/sakura-server/src/main/java/me/samsuik/sakura/explosion/SpecialisedExplosion.java @@ -84,7 +84,7 @@ public abstract class SpecialisedExplosion extends ServerExplo protected void postExplosion(final List foundBlocks, final boolean destroyedBlocks) { // Reuse the block cache between explosions. This can help a lot when searching for blocks and raytracing. // This is disabled by default as it's incompatible with plugins that modify blocks in the explosion event. - if (this.level().sakuraConfig().cannons.explosion.useBlockCacheAcrossExplosions && !foundBlocks.isEmpty() && !destroyedBlocks) { + if (this.level().sakuraConfig().cannons.explosion.reuseBlockCacheAcrossExplosions && !foundBlocks.isEmpty() && !destroyedBlocks) { this.markBlocksInCacheAsExplodable(foundBlocks); } else { super.blockCache.clear();