From 5a50f90825ba96891b00c36e87528e4cc88a66bc Mon Sep 17 00:00:00 2001 From: Tektonikal Date: Sat, 10 Oct 2026 00:36:45 -0400 Subject: [PATCH] add mod toggle --- .../mixin/client/Mixin_CancelBreakingParticles.java | 3 ++- .../mixin/client/Mixin_CancelDiggingParticles.java | 3 ++- .../mixin/client/Mixin_CancelFootstepsIfNeeded.java | 3 ++- .../mixin/client/Mixin_CleanEmitterView.java | 4 ++-- .../overflowparticles/mixin/client/Mixin_CleanView.java | 4 ++-- .../mixin/client/Mixin_CustomParticleSpawner.java | 5 +++-- .../mixin/client/Mixin_DealWithBlockParticles.java | 5 +++-- .../mixin/client/Mixin_FallStateParticles.java | 5 +++-- .../mixin/client/Mixin_MultiplyDeathParticles.java | 3 ++- .../mixin/client/Mixin_ParticleNoClip.java | 2 +- .../mixin/client/Mixin_SetParticleIds.java | 3 ++- .../mixin/client/Mixin_StaticParticleColor.java | 2 +- .../client/particles/Mixin_ApplyMultiplierToArrows.java | 5 +++-- .../particles/Mixin_ApplyMultiplierToEmitters.java | 3 ++- .../mixin/client/particles/Mixin_ModifyBarrierSize.java | 3 ++- .../client/OverflowParticlesEventHandler.kt | 4 ++-- .../client/config/OverflowParticlesConfig.kt | 9 +++++++++ .../client/config/PerParticleConfigManager.kt | 4 ++++ 18 files changed, 47 insertions(+), 23 deletions(-) diff --git a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CancelBreakingParticles.java b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CancelBreakingParticles.java index 8a319ed..e00f8c9 100644 --- a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CancelBreakingParticles.java +++ b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CancelBreakingParticles.java @@ -2,6 +2,7 @@ import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.particle.ParticleEngine; +import org.polyfrost.overflowparticles.client.config.OverflowParticlesConfig; import org.polyfrost.overflowparticles.client.config.PerParticleConfigManager; import org.polyfrost.overflowparticles.client.particles.VanillaParticles; import org.spongepowered.asm.mixin.Mixin; @@ -27,7 +28,7 @@ public class Mixin_CancelBreakingParticles { cancellable = true ) private void overflowparticles$cancelBlockDestroy(CallbackInfo ci) { - if (!PerParticleConfigManager.getConfigByType(VanillaParticles.BLOCKS).getEnabled() || PerParticleConfigManager.getBlockSetting().getHideDigging()) { + if (OverflowParticlesConfig.getModEnabled() && (!PerParticleConfigManager.getConfigByType(VanillaParticles.BLOCKS).getEnabled() || PerParticleConfigManager.getBlockSetting().getHideDigging())) { ci.cancel(); } } diff --git a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CancelDiggingParticles.java b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CancelDiggingParticles.java index 859ff3e..0e6ebe4 100644 --- a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CancelDiggingParticles.java +++ b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CancelDiggingParticles.java @@ -2,6 +2,7 @@ import net.minecraft.client.multiplayer.ClientLevel; import net.minecraft.client.particle.ParticleEngine; +import org.polyfrost.overflowparticles.client.config.OverflowParticlesConfig; import org.polyfrost.overflowparticles.client.config.PerParticleConfigManager; import org.polyfrost.overflowparticles.client.particles.VanillaParticles; import org.spongepowered.asm.mixin.Mixin; @@ -30,7 +31,7 @@ public class Mixin_CancelDiggingParticles { cancellable = true ) private void overflowparticles$cancelBlockHit(CallbackInfo ci) { - if (!PerParticleConfigManager.getConfigByType(VanillaParticles.BLOCKS).getEnabled() || PerParticleConfigManager.getBlockSetting().getHideDigging()) { + if (OverflowParticlesConfig.getModEnabled() && (!PerParticleConfigManager.getConfigByType(VanillaParticles.BLOCKS).getEnabled() || PerParticleConfigManager.getBlockSetting().getHideDigging())) { ci.cancel(); } } diff --git a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CancelFootstepsIfNeeded.java b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CancelFootstepsIfNeeded.java index e35a99d..f05afc6 100644 --- a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CancelFootstepsIfNeeded.java +++ b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CancelFootstepsIfNeeded.java @@ -5,6 +5,7 @@ import net.minecraft.world.World; import org.polyfrost.overflowparticles.client.config.BlockParticleEntry; import org.polyfrost.overflowparticles.client.config.ParticleConfig; +import org.polyfrost.overflowparticles.client.config.OverflowParticlesConfig; import org.polyfrost.overflowparticles.client.config.PerParticleConfigManager; import org.polyfrost.overflowparticles.client.particles.VanillaParticles; import org.spongepowered.asm.mixin.Mixin; @@ -19,7 +20,7 @@ public class Mixin_CancelFootstepsIfNeeded { @Inject(method = "doSprintingEffect", at = @At("HEAD"), cancellable = true) private void runningParticle(CallbackInfo ci) { - if (this.world != null && !this.world.isClient) { + if (!OverflowParticlesConfig.getModEnabled() || (this.world != null && !this.world.isClient)) { return; } diff --git a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CleanEmitterView.java b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CleanEmitterView.java index ace7ea5..53747f3 100644 --- a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CleanEmitterView.java +++ b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CleanEmitterView.java @@ -26,9 +26,9 @@ public Mixin_CleanEmitterView() { @Inject(method = "tick", at = @At("HEAD"), cancellable = true) public void cleanView(CallbackInfo ci) { //? if >1.8.9 { - if (OverflowParticlesConfig.isCleanView() && this.entity == overflowparticles$getPlayer()) { + if (OverflowParticlesConfig.getModEnabled() && OverflowParticlesConfig.isCleanView() && this.entity == overflowparticles$getPlayer()) { //?} else - //if (OverflowParticlesConfig.isCleanView() && this.target == overflowparticles$getPlayer()) { + //if (OverflowParticlesConfig.getModEnabled() && OverflowParticlesConfig.isCleanView() && this.target == overflowparticles$getPlayer()) { this.remove(); ci.cancel(); } diff --git a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CleanView.java b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CleanView.java index d422cc8..38c1aa8 100644 --- a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CleanView.java +++ b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CleanView.java @@ -38,7 +38,7 @@ public class Mixin_CleanView { @Unique private boolean shouldBlock(ParticleOptions particle) { - if (!OverflowParticlesConfig.isCleanView() || !Minecraft.getInstance().options.getCameraType().isFirstPerson()) { + if (!OverflowParticlesConfig.getModEnabled() || !OverflowParticlesConfig.isCleanView() || !Minecraft.getInstance().options.getCameraType().isFirstPerson()) { return false; } @@ -70,7 +70,7 @@ private boolean shouldBlock(ParticleOptions particle) { @Unique private boolean shouldBlock(ParticleType particle) { - if (!OverflowParticlesConfig.isCleanView() || Minecraft.getInstance().options.perspective != 0) { + if (!OverflowParticlesConfig.getModEnabled() || !OverflowParticlesConfig.isCleanView() || Minecraft.getInstance().options.perspective != 0) { return false; } diff --git a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CustomParticleSpawner.java b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CustomParticleSpawner.java index 7c14d2c..73b850b 100644 --- a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CustomParticleSpawner.java +++ b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_CustomParticleSpawner.java @@ -12,6 +12,7 @@ import org.spongepowered.asm.mixin.Shadow; *///?} import org.polyfrost.overflowparticles.client.config.ParticleConfig; +import org.polyfrost.overflowparticles.client.config.OverflowParticlesConfig; import org.polyfrost.overflowparticles.client.config.PerParticleConfigManager; import org.polyfrost.overflowparticles.client.utils.ParticleSpawner; import org.spongepowered.asm.mixin.Mixin; @@ -82,7 +83,7 @@ public class Mixin_CustomParticleSpawner { ParticleType type = options.getType(); ParticleConfig config = PerParticleConfigManager.getConfigByType(type); - if (config == null) { + if (!OverflowParticlesConfig.getModEnabled() || config == null) { return; } @@ -128,7 +129,7 @@ public class Mixin_CustomParticleSpawner { ParticleType type = ParticleType.byId(particleId); ParticleConfig config = PerParticleConfigManager.getConfigByType(type); - if (config == null) { + if (!OverflowParticlesConfig.getModEnabled() || config == null) { return; } diff --git a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_DealWithBlockParticles.java b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_DealWithBlockParticles.java index 8c1190c..de5d462 100644 --- a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_DealWithBlockParticles.java +++ b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_DealWithBlockParticles.java @@ -8,6 +8,7 @@ import net.minecraft.network.packet.s2c.play.ParticleS2CPacket; *///?} import org.polyfrost.overflowparticles.client.config.BlockParticleEntry; +import org.polyfrost.overflowparticles.client.config.OverflowParticlesConfig; import org.polyfrost.overflowparticles.client.config.PerParticleConfigManager; import org.polyfrost.overflowparticles.client.config.ParticleConfig; import org.polyfrost.overflowparticles.client.particles.VanillaParticles; @@ -22,13 +23,13 @@ public class Mixin_DealWithBlockParticles { @Inject(method = "handleParticleEvent", at = @At("HEAD"), cancellable = true) private void overflowparticles$onServerFell(ClientboundLevelParticlesPacket packetIn, CallbackInfo ci) { //~ if < 26.3 'particle()' -> 'getParticle()' - if (packetIn.particle().getType() != VanillaParticles.BLOCK_DUST.getId()) { + if (!OverflowParticlesConfig.getModEnabled() || packetIn.particle().getType() != VanillaParticles.BLOCK_DUST.getId()) { //?} else { /*@Mixin(ClientPlayNetworkHandler.class) public class Mixin_DealWithBlockParticles { @Inject(method = "handleParticle", at = @At("HEAD"), cancellable = true) private void overflowparticles$onServerFell(ParticleS2CPacket packetIn, CallbackInfo ci) { - if (packetIn.getType() != VanillaParticles.BLOCK_DUST.getId()) { + if (!OverflowParticlesConfig.getModEnabled() || packetIn.getType() != VanillaParticles.BLOCK_DUST.getId()) { *///?} return; } diff --git a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_FallStateParticles.java b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_FallStateParticles.java index 4540731..b0620ba 100644 --- a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_FallStateParticles.java +++ b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_FallStateParticles.java @@ -13,6 +13,7 @@ *///?} import org.polyfrost.overflowparticles.client.config.BlockParticleEntry; import org.polyfrost.overflowparticles.client.config.ParticleConfig; +import org.polyfrost.overflowparticles.client.config.OverflowParticlesConfig; import org.polyfrost.overflowparticles.client.config.PerParticleConfigManager; import org.polyfrost.overflowparticles.client.particles.VanillaParticles; import org.spongepowered.asm.mixin.Mixin; @@ -39,7 +40,7 @@ public Mixin_FallStateParticles(EntityType arg, Level arg2) { ) private boolean fall(boolean original) { Level world = overflowparticles$getWorld(); - if (world != null && !overflowparticles$isClient(world)) { + if (!OverflowParticlesConfig.getModEnabled() || (world != null && !overflowparticles$isClient(world))) { return original; } @@ -80,7 +81,7 @@ private boolean fall(boolean original) { ) ) private Material fall(Material original) { - if (this.world != null && !this.world.isClient) { + if (!OverflowParticlesConfig.getModEnabled() || (this.world != null && !this.world.isClient)) { return original; } diff --git a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_MultiplyDeathParticles.java b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_MultiplyDeathParticles.java index 23e31e1..2fdc508 100644 --- a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_MultiplyDeathParticles.java +++ b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_MultiplyDeathParticles.java @@ -10,6 +10,7 @@ //?} else { /*import net.minecraft.world.World; *///?} +import org.polyfrost.overflowparticles.client.config.OverflowParticlesConfig; import org.polyfrost.overflowparticles.client.config.PerParticleConfigManager; import org.polyfrost.overflowparticles.client.config.ParticleConfig; import org.polyfrost.overflowparticles.client.particles.VanillaParticles; @@ -36,7 +37,7 @@ public Mixin_MultiplyDeathParticles(EntityType arg, Level arg2) { *///?} private int overflowparticles$applyMultiplier(int constant) { ParticleConfig config = PerParticleConfigManager.getConfigByType(VanillaParticles.EXPLOSION_NORMAL); - if (config.getMultiplier() == 1) { + if (!OverflowParticlesConfig.getModEnabled() || config.getMultiplier() == 1) { return constant; } diff --git a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_ParticleNoClip.java b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_ParticleNoClip.java index 03e5ba9..de45852 100644 --- a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_ParticleNoClip.java +++ b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_ParticleNoClip.java @@ -48,7 +48,7 @@ private void enableNoClip(double x, double y, double z, CallbackInfo ci) { } *///?} - if (OverflowParticlesConfig.INSTANCE.getParticleNoClip()) { + if (OverflowParticlesConfig.getModEnabled() && OverflowParticlesConfig.INSTANCE.getParticleNoClip()) { //? if >=1.16.5 { this.setBoundingBox(this.getBoundingBox().move(x, y, z)); this.setLocationFromBoundingbox(); diff --git a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_SetParticleIds.java b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_SetParticleIds.java index 543eaa5..a568f3b 100644 --- a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_SetParticleIds.java +++ b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_SetParticleIds.java @@ -10,6 +10,7 @@ /*import net.minecraft.entity.particle.ParticleType; *///?} import org.polyfrost.overflowparticles.client.config.ParticleConfig; +import org.polyfrost.overflowparticles.client.config.OverflowParticlesConfig; import org.polyfrost.overflowparticles.client.config.PerParticleConfigManager; import org.polyfrost.overflowparticles.client.particles.VanillaParticles; import org.polyfrost.overflowparticles.utils.ParticleIdentifier; @@ -100,7 +101,7 @@ public class Mixin_SetParticleIds { private boolean overflowparticles$shouldSpawn(ParticleType type) { //?} else //private boolean overflowparticles$shouldSpawn(ParticleType type) { - if (type == null) { + if (!OverflowParticlesConfig.getModEnabled() || type == null) { return true; } diff --git a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_StaticParticleColor.java b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_StaticParticleColor.java index d9c8cef..b7a0ea8 100644 --- a/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_StaticParticleColor.java +++ b/src/main/java/org/polyfrost/overflowparticles/mixin/client/Mixin_StaticParticleColor.java @@ -44,7 +44,7 @@ public class Mixin_StaticParticleColor { private int overflowparticles$staticParticleColor(SingleQuadParticle instance, float partialTicks, Operation original) { //?} else //private int overflowparticles$staticParticleColor(Particle instance, float partialTicks, Operation original) { - return OverflowParticlesConfig.isStaticParticleColor() + return OverflowParticlesConfig.getModEnabled() && OverflowParticlesConfig.isStaticParticleColor() ? STATIC_PARTICLE_COLOR : original.call(instance, partialTicks); } diff --git a/src/main/java/org/polyfrost/overflowparticles/mixin/client/particles/Mixin_ApplyMultiplierToArrows.java b/src/main/java/org/polyfrost/overflowparticles/mixin/client/particles/Mixin_ApplyMultiplierToArrows.java index 4397b90..026dc82 100644 --- a/src/main/java/org/polyfrost/overflowparticles/mixin/client/particles/Mixin_ApplyMultiplierToArrows.java +++ b/src/main/java/org/polyfrost/overflowparticles/mixin/client/particles/Mixin_ApplyMultiplierToArrows.java @@ -9,6 +9,7 @@ *///?} import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import org.polyfrost.overflowparticles.client.config.ParticleConfig; +import org.polyfrost.overflowparticles.client.config.OverflowParticlesConfig; import org.polyfrost.overflowparticles.client.config.PerParticleConfigManager; import org.polyfrost.overflowparticles.client.particles.VanillaParticles; import org.polyfrost.overflowparticles.client.utils.ParticleSpawner; @@ -25,7 +26,7 @@ public class Mixin_ApplyMultiplierToArrows { @ModifyExpressionValue(method = "tick", at = @At(value = "CONSTANT", args = "intValue=4", ordinal = 0)) private int multiplier(int constant) { ParticleConfig config = PerParticleConfigManager.getConfigByType(VanillaParticles.CRITICAL); - if (config.getMultiplier() == 1) { + if (!OverflowParticlesConfig.getModEnabled() || config.getMultiplier() == 1) { return constant; } @@ -35,7 +36,7 @@ private int multiplier(int constant) { @ModifyExpressionValue(method = "tick", at = @At(value = "CONSTANT", args = "doubleValue=4.0D")) private double multiplier1(double constant) { ParticleConfig config = PerParticleConfigManager.getConfigByType(VanillaParticles.CRITICAL); - if (config.getMultiplier() == 1) { + if (!OverflowParticlesConfig.getModEnabled() || config.getMultiplier() == 1) { return constant; } diff --git a/src/main/java/org/polyfrost/overflowparticles/mixin/client/particles/Mixin_ApplyMultiplierToEmitters.java b/src/main/java/org/polyfrost/overflowparticles/mixin/client/particles/Mixin_ApplyMultiplierToEmitters.java index 011368f..910c4fc 100644 --- a/src/main/java/org/polyfrost/overflowparticles/mixin/client/particles/Mixin_ApplyMultiplierToEmitters.java +++ b/src/main/java/org/polyfrost/overflowparticles/mixin/client/particles/Mixin_ApplyMultiplierToEmitters.java @@ -7,6 +7,7 @@ //?} else //import net.minecraft.entity.particle.ParticleType; import org.polyfrost.overflowparticles.client.config.ParticleConfig; +import org.polyfrost.overflowparticles.client.config.OverflowParticlesConfig; import org.polyfrost.overflowparticles.client.config.PerParticleConfigManager; import org.polyfrost.overflowparticles.client.particles.ParticleInfo; import org.polyfrost.overflowparticles.client.particles.ParticleRegistry; @@ -36,7 +37,7 @@ private int multiplier(int constant) { } ParticleConfig config = PerParticleConfigManager.getConfigByType(type); - if (config.getMultiplier() == 1) { + if (!OverflowParticlesConfig.getModEnabled() || config.getMultiplier() == 1) { return constant; } diff --git a/src/main/java/org/polyfrost/overflowparticles/mixin/client/particles/Mixin_ModifyBarrierSize.java b/src/main/java/org/polyfrost/overflowparticles/mixin/client/particles/Mixin_ModifyBarrierSize.java index 0e91542..8d5dc6f 100644 --- a/src/main/java/org/polyfrost/overflowparticles/mixin/client/particles/Mixin_ModifyBarrierSize.java +++ b/src/main/java/org/polyfrost/overflowparticles/mixin/client/particles/Mixin_ModifyBarrierSize.java @@ -3,6 +3,7 @@ //? if =1.8.9 { /*import com.llamalad7.mixinextras.injector.ModifyExpressionValue; import net.minecraft.client.entity.particle.BarrierParticle; +import org.polyfrost.overflowparticles.client.config.OverflowParticlesConfig; import org.polyfrost.overflowparticles.client.config.PerParticleConfigManager; import org.polyfrost.overflowparticles.client.particles.VanillaParticles; import org.spongepowered.asm.mixin.Mixin; @@ -12,7 +13,7 @@ public class Mixin_ModifyBarrierSize { @ModifyExpressionValue(method = "render", at = @At(value = "CONSTANT", args = "floatValue=0.5F")) private float overflowparticles$scale(float constant) { - return constant * PerParticleConfigManager.getConfigByType(VanillaParticles.BARRIER).getSize(); + return OverflowParticlesConfig.getModEnabled() ? constant * PerParticleConfigManager.getConfigByType(VanillaParticles.BARRIER).getSize() : constant; } } *///?} else { diff --git a/src/main/kotlin/org/polyfrost/overflowparticles/client/OverflowParticlesEventHandler.kt b/src/main/kotlin/org/polyfrost/overflowparticles/client/OverflowParticlesEventHandler.kt index f3785cc..84c2f25 100644 --- a/src/main/kotlin/org/polyfrost/overflowparticles/client/OverflowParticlesEventHandler.kt +++ b/src/main/kotlin/org/polyfrost/overflowparticles/client/OverflowParticlesEventHandler.kt @@ -34,7 +34,7 @@ object OverflowParticlesEventHandler { fun initialize() { eventHandler { event: PacketEvent.Receive -> - if (!OverflowParticlesConfig.checkInvulnerable) { + if (!OverflowParticlesConfig.modEnabled || !OverflowParticlesConfig.checkInvulnerable) { return@eventHandler } @@ -68,7 +68,7 @@ object OverflowParticlesEventHandler { /*val isClientWorld = event.target.world.isClient *///?} - if (!isClientWorld) { + if (!OverflowParticlesConfig.modEnabled || !isClientWorld) { return@eventHandler } diff --git a/src/main/kotlin/org/polyfrost/overflowparticles/client/config/OverflowParticlesConfig.kt b/src/main/kotlin/org/polyfrost/overflowparticles/client/config/OverflowParticlesConfig.kt index 3654454..7e02761 100644 --- a/src/main/kotlin/org/polyfrost/overflowparticles/client/config/OverflowParticlesConfig.kt +++ b/src/main/kotlin/org/polyfrost/overflowparticles/client/config/OverflowParticlesConfig.kt @@ -4,6 +4,7 @@ import club.sk1er.patcher.config.OldPatcherConfig import dev.isxander.particlesenhanced.config.ParticlesEnhancedConfig import org.apache.logging.log4j.LogManager import org.polyfrost.oneconfig.api.config.v1.Config +import org.polyfrost.oneconfig.api.config.v1.Property import org.polyfrost.oneconfig.api.config.v1.Tree import org.polyfrost.oneconfig.api.config.v1.annotations.Include import org.polyfrost.oneconfig.api.config.v1.annotations.Switch @@ -19,6 +20,10 @@ object OverflowParticlesConfig : Config("overflowparticles.json", "/assets/overf private const val CONFIG_VERSION = 1 + @Switch(title = "Global Mod Toggle", description = "Toggle all mod features on or off.") + @JvmStatic + var modEnabled = true + @Switch( title = "Clean View", description = "Stop rendering your own potion effect particles.", @@ -65,6 +70,10 @@ object OverflowParticlesConfig : Config("overflowparticles.json", "/assets/overf override fun initialize(byConfigManager: Boolean) { super.initialize(byConfigManager) + tree?.let { tree -> + val toggle = Property.recast(getProperty("modEnabled")) + tree.onAllProps { _, option -> if (option !== toggle) option.addDisplayCondition(toggle, false) } + } try { migrate() } catch (e: Throwable) { diff --git a/src/main/kotlin/org/polyfrost/overflowparticles/client/config/PerParticleConfigManager.kt b/src/main/kotlin/org/polyfrost/overflowparticles/client/config/PerParticleConfigManager.kt index 0f97136..3e0eda6 100644 --- a/src/main/kotlin/org/polyfrost/overflowparticles/client/config/PerParticleConfigManager.kt +++ b/src/main/kotlin/org/polyfrost/overflowparticles/client/config/PerParticleConfigManager.kt @@ -31,6 +31,10 @@ object PerParticleConfigManager { @JvmStatic fun getConfig(entity: Particle?): ParticleConfig? { + if (!OverflowParticlesConfig.modEnabled) { + return null + } + return (entity as? ParticleIdentifier)?.`overflowparticles$getConfig`() }