From 18a3e01e456051931995643f3c760ca30dbeda82 Mon Sep 17 00:00:00 2001 From: 17146 <1714673995@qq.com> Date: Thu, 20 Mar 2025 20:50:22 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=88=98=E6=9C=AF=E5=86=B2?= =?UTF-8?q?=E5=88=BA=E7=9A=84=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../superbwarfare/config/ServerConfig.java | 6 ++---- .../superbwarfare/config/server/MiscConfig.java | 17 +++++++++++++++++ .../superbwarfare/event/PlayerEventHandler.java | 5 ++++- 3 files changed, 23 insertions(+), 5 deletions(-) create mode 100644 src/main/java/com/atsuishio/superbwarfare/config/server/MiscConfig.java diff --git a/src/main/java/com/atsuishio/superbwarfare/config/ServerConfig.java b/src/main/java/com/atsuishio/superbwarfare/config/ServerConfig.java index 6015c455d..df8d8a45d 100644 --- a/src/main/java/com/atsuishio/superbwarfare/config/ServerConfig.java +++ b/src/main/java/com/atsuishio/superbwarfare/config/ServerConfig.java @@ -1,9 +1,6 @@ package com.atsuishio.superbwarfare.config; -import com.atsuishio.superbwarfare.config.server.ExplosionConfig; -import com.atsuishio.superbwarfare.config.server.ProjectileConfig; -import com.atsuishio.superbwarfare.config.server.SpawnConfig; -import com.atsuishio.superbwarfare.config.server.VehicleConfig; +import com.atsuishio.superbwarfare.config.server.*; import net.minecraftforge.common.ForgeConfigSpec; public class ServerConfig { @@ -15,6 +12,7 @@ public class ServerConfig { ProjectileConfig.init(builder); ExplosionConfig.init(builder); VehicleConfig.init(builder); + MiscConfig.init(builder); return builder.build(); } diff --git a/src/main/java/com/atsuishio/superbwarfare/config/server/MiscConfig.java b/src/main/java/com/atsuishio/superbwarfare/config/server/MiscConfig.java new file mode 100644 index 000000000..63fede1dc --- /dev/null +++ b/src/main/java/com/atsuishio/superbwarfare/config/server/MiscConfig.java @@ -0,0 +1,17 @@ +package com.atsuishio.superbwarfare.config.server; + +import net.minecraftforge.common.ForgeConfigSpec; + +public class MiscConfig { + + public static ForgeConfigSpec.BooleanValue ALLOW_TACTICAL_SPRINT; + + public static void init(ForgeConfigSpec.Builder builder) { + builder.push("misc"); + + builder.comment("Set true to enable tactical sprint"); + ALLOW_TACTICAL_SPRINT = builder.define("allow_tactical_sprint", true); + + builder.pop(); + } +} diff --git a/src/main/java/com/atsuishio/superbwarfare/event/PlayerEventHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/PlayerEventHandler.java index 0ec98fb2a..606e9f60f 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/PlayerEventHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/PlayerEventHandler.java @@ -2,6 +2,7 @@ package com.atsuishio.superbwarfare.event; import com.atsuishio.superbwarfare.ModUtils; import com.atsuishio.superbwarfare.config.common.GameplayConfig; +import com.atsuishio.superbwarfare.config.server.MiscConfig; import com.atsuishio.superbwarfare.init.ModItems; import com.atsuishio.superbwarfare.init.ModSounds; import com.atsuishio.superbwarfare.init.ModTags; @@ -162,8 +163,10 @@ public class PlayerEventHandler { capability.tacticalSprintTime = Mth.clamp(player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).tacticalSprintTime - sprintCost, 0, 1000); capability.syncPlayerVariables(player); }); - player.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, 2, 0, false, false)); + if (MiscConfig.ALLOW_TACTICAL_SPRINT.get()) { + player.addEffect(new MobEffectInstance(MobEffects.MOVEMENT_SPEED, 2, 0, false, false)); + } } else { player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).ifPresent(capability -> { capability.tacticalSprintTime = Mth.clamp(player.getCapability(ModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new ModVariables.PlayerVariables()).tacticalSprintTime + 7, 0, 1000);