From 44962415240f30ba07961eb59a9ffe64a0181d31 Mon Sep 17 00:00:00 2001 From: altrisi Date: Mon, 26 Dec 2022 16:22:09 +0100 Subject: [PATCH] Use constants for a few magic numbers in rules --- src/main/java/carpet/CarpetSettings.java | 15 ++++++++------- .../mixins/CloneCommands_fillUpdatesMixin.java | 2 +- .../java/carpet/mixins/FillBiomeCommandMixin.java | 2 +- src/main/java/carpet/mixins/FillCommandMixin.java | 2 +- ...> PistonStructureResolver_pushLimitMixin.java} | 4 ++-- .../ServerboundSetStructureBlockPacketMixin.java | 4 +++- .../StructureBlockEntity_fillUpdatesMixin.java | 1 - .../mixins/StructureBlockEntity_limitsMixin.java | 4 ++-- src/main/resources/carpet.mixins.json | 2 +- 9 files changed, 19 insertions(+), 17 deletions(-) rename src/main/java/carpet/mixins/{PistonHandler_pushLimitMixin.java => PistonStructureResolver_pushLimitMixin.java} (82%) diff --git a/src/main/java/carpet/CarpetSettings.java b/src/main/java/carpet/CarpetSettings.java index f9def41b..10fd08e6 100644 --- a/src/main/java/carpet/CarpetSettings.java +++ b/src/main/java/carpet/CarpetSettings.java @@ -24,6 +24,8 @@ import net.minecraft.world.level.ChunkPos; import net.minecraft.world.level.Level; import net.minecraft.world.level.block.Block; import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.entity.StructureBlockEntity; +import net.minecraft.world.level.block.piston.PistonStructureResolver; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -52,12 +54,11 @@ public class CarpetSettings public static final Logger LOG = LoggerFactory.getLogger("carpet"); public static final ThreadLocal skipGenerationChecks = ThreadLocal.withInitial(() -> false); public static final ThreadLocal impendingFillSkipUpdates = ThreadLocal.withInitial(() -> false); + public static final int VANILLA_FILL_LIMIT = 32768; public static int runPermissionLevel = 2; public static boolean doChainStone = false; public static boolean chainStoneStickToAll = false; public static Block structureBlockIgnoredBlock = Blocks.STRUCTURE_VOID; - public static final int vanillaStructureBlockLimit = 48; - private static class LanguageValidator extends Validator { @Override public String validate(CommandSourceStack source, CarpetRule currentRule, String newValue, String string) { if (!Translations.isValidLanguage(newValue)) @@ -611,7 +612,7 @@ public class CarpetSettings strict = false, validate = PushLimitLimits.class ) - public static int pushLimit = 12; + public static int pushLimit = PistonStructureResolver.MAX_PUSH_DEPTH; @Rule( desc = "Customizable powered rail power range", @@ -636,7 +637,7 @@ public class CarpetSettings strict = false, validate = FillLimitLimits.class ) - public static int fillLimit = 32768; + public static int fillLimit = VANILLA_FILL_LIMIT; @Rule( @@ -815,7 +816,7 @@ public class CarpetSettings options = {"0", "11"}, validate = ChangeSpawnChunksValidator.class ) - public static int spawnChunksSize = 11; + public static int spawnChunksSize = MinecraftServer.START_CHUNK_RADIUS; public static class LightBatchValidator extends Validator { public static void applyLightBatchSizes(int maxBatchSize) @@ -978,7 +979,7 @@ public class CarpetSettings public static class StructureBlockLimitValidator extends Validator { @Override public Integer validate(CommandSourceStack source, CarpetRule currentRule, Integer newValue, String string) { - return (newValue >= vanillaStructureBlockLimit) ? newValue : null; + return (newValue >= StructureBlockEntity.MAX_SIZE_PER_AXIS) ? newValue : null; } @Override @@ -999,7 +1000,7 @@ public class CarpetSettings validate = StructureBlockLimitValidator.class, strict = false ) - public static int structureBlockLimit = vanillaStructureBlockLimit; + public static int structureBlockLimit = StructureBlockEntity.MAX_SIZE_PER_AXIS; public static class StructureBlockIgnoredValidator extends Validator { diff --git a/src/main/java/carpet/mixins/CloneCommands_fillUpdatesMixin.java b/src/main/java/carpet/mixins/CloneCommands_fillUpdatesMixin.java index e9d7c366..1617f374 100644 --- a/src/main/java/carpet/mixins/CloneCommands_fillUpdatesMixin.java +++ b/src/main/java/carpet/mixins/CloneCommands_fillUpdatesMixin.java @@ -15,7 +15,7 @@ import org.spongepowered.asm.mixin.injection.Redirect; @Mixin(CloneCommands.class) public abstract class CloneCommands_fillUpdatesMixin { - @ModifyConstant(method = "clone", constant = @Constant(intValue = 32768)) + @ModifyConstant(method = "clone", constant = @Constant(intValue = CarpetSettings.VANILLA_FILL_LIMIT)) private static int fillLimit(int original) { return CarpetSettings.fillLimit; } diff --git a/src/main/java/carpet/mixins/FillBiomeCommandMixin.java b/src/main/java/carpet/mixins/FillBiomeCommandMixin.java index 88c2cc02..029a1432 100644 --- a/src/main/java/carpet/mixins/FillBiomeCommandMixin.java +++ b/src/main/java/carpet/mixins/FillBiomeCommandMixin.java @@ -9,7 +9,7 @@ import org.spongepowered.asm.mixin.injection.ModifyConstant; @Mixin(FillBiomeCommand.class) public class FillBiomeCommandMixin { - @ModifyConstant(method = "fill", constant = @Constant(intValue = 32768)) + @ModifyConstant(method = "fill", constant = @Constant(intValue = CarpetSettings.VANILLA_FILL_LIMIT)) private static int fillLimit(int original) { return CarpetSettings.fillLimit; diff --git a/src/main/java/carpet/mixins/FillCommandMixin.java b/src/main/java/carpet/mixins/FillCommandMixin.java index a237b7f2..4efedc51 100644 --- a/src/main/java/carpet/mixins/FillCommandMixin.java +++ b/src/main/java/carpet/mixins/FillCommandMixin.java @@ -14,7 +14,7 @@ import org.spongepowered.asm.mixin.injection.Redirect; @Mixin(FillCommand.class) public abstract class FillCommandMixin { - @ModifyConstant(method = "fillBlocks", constant = @Constant(intValue = 32768)) + @ModifyConstant(method = "fillBlocks", constant = @Constant(intValue = CarpetSettings.VANILLA_FILL_LIMIT)) private static int fillLimit(int original) { return CarpetSettings.fillLimit; diff --git a/src/main/java/carpet/mixins/PistonHandler_pushLimitMixin.java b/src/main/java/carpet/mixins/PistonStructureResolver_pushLimitMixin.java similarity index 82% rename from src/main/java/carpet/mixins/PistonHandler_pushLimitMixin.java rename to src/main/java/carpet/mixins/PistonStructureResolver_pushLimitMixin.java index 9a8a5c47..d2a3cc8b 100644 --- a/src/main/java/carpet/mixins/PistonHandler_pushLimitMixin.java +++ b/src/main/java/carpet/mixins/PistonStructureResolver_pushLimitMixin.java @@ -7,9 +7,9 @@ import org.spongepowered.asm.mixin.injection.Constant; import org.spongepowered.asm.mixin.injection.ModifyConstant; @Mixin(value = PistonStructureResolver.class, priority = 420) // piston push limit is important for carpet -public class PistonHandler_pushLimitMixin +public class PistonStructureResolver_pushLimitMixin { - @ModifyConstant(method = "addBlockLine", constant = @Constant(intValue = 12), expect = 3) + @ModifyConstant(method = "addBlockLine", constant = @Constant(intValue = PistonStructureResolver.MAX_PUSH_DEPTH), expect = 3) private int pushLimit(int original) { return CarpetSettings.pushLimit; diff --git a/src/main/java/carpet/mixins/ServerboundSetStructureBlockPacketMixin.java b/src/main/java/carpet/mixins/ServerboundSetStructureBlockPacketMixin.java index 6f313e10..fbb43e80 100644 --- a/src/main/java/carpet/mixins/ServerboundSetStructureBlockPacketMixin.java +++ b/src/main/java/carpet/mixins/ServerboundSetStructureBlockPacketMixin.java @@ -6,6 +6,8 @@ import net.minecraft.core.Vec3i; import net.minecraft.network.FriendlyByteBuf; import net.minecraft.network.protocol.game.ServerboundSetStructureBlockPacket; import net.minecraft.util.Mth; +import net.minecraft.world.level.block.entity.StructureBlockEntity; + import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.Mutable; @@ -39,7 +41,7 @@ public class ServerboundSetStructureBlockPacketMixin { ) private void structureBlockLimitsWrite(FriendlyByteBuf buf, CallbackInfo ci) { //client method, only applicable if with carpet is on the server, or running locally - if (CarpetSettings.structureBlockLimit != CarpetSettings.vanillaStructureBlockLimit) + if (CarpetSettings.structureBlockLimit != StructureBlockEntity.MAX_SIZE_PER_AXIS) { buf.writeInt(this.offset.getX()); buf.writeInt(this.offset.getY()); diff --git a/src/main/java/carpet/mixins/StructureBlockEntity_fillUpdatesMixin.java b/src/main/java/carpet/mixins/StructureBlockEntity_fillUpdatesMixin.java index ce251de4..27379921 100644 --- a/src/main/java/carpet/mixins/StructureBlockEntity_fillUpdatesMixin.java +++ b/src/main/java/carpet/mixins/StructureBlockEntity_fillUpdatesMixin.java @@ -6,7 +6,6 @@ import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Redirect; -import java.util.Random; import net.minecraft.core.BlockPos; import net.minecraft.world.level.ServerLevelAccessor; import net.minecraft.world.level.block.entity.StructureBlockEntity; diff --git a/src/main/java/carpet/mixins/StructureBlockEntity_limitsMixin.java b/src/main/java/carpet/mixins/StructureBlockEntity_limitsMixin.java index ed5a5a2c..340be4c3 100644 --- a/src/main/java/carpet/mixins/StructureBlockEntity_limitsMixin.java +++ b/src/main/java/carpet/mixins/StructureBlockEntity_limitsMixin.java @@ -14,7 +14,7 @@ public abstract class StructureBlockEntity_limitsMixin { @ModifyConstant( method = "load", - constant = @Constant(intValue = 48) + constant = @Constant(intValue = StructureBlockEntity.MAX_SIZE_PER_AXIS) ) private int positiveLimit(int original) { return CarpetSettings.structureBlockLimit; @@ -22,7 +22,7 @@ public abstract class StructureBlockEntity_limitsMixin @ModifyConstant( method = "load", - constant = @Constant(intValue = -48) + constant = @Constant(intValue = -StructureBlockEntity.MAX_SIZE_PER_AXIS) ) private int negativeLimit(int original) { return -CarpetSettings.structureBlockLimit; diff --git a/src/main/resources/carpet.mixins.json b/src/main/resources/carpet.mixins.json index b9a714e9..eb99e596 100644 --- a/src/main/resources/carpet.mixins.json +++ b/src/main/resources/carpet.mixins.json @@ -67,7 +67,7 @@ "RedstoneWireBlock_fastMixin", "WoolCarpetBlock_placeMixin", "SummonCommand_lightningMixin", - "PistonHandler_pushLimitMixin", + "PistonStructureResolver_pushLimitMixin", "PoweredRailBlock_powerLimitMixin", "LivingEntity_maxCollisionsMixin", "Level_getOtherEntitiesLimited",