From 3c37b80bc288ec2b907d3f1beb38e4da43b5d59b Mon Sep 17 00:00:00 2001 From: RudideC Date: Fri, 16 Jan 2026 19:02:51 +0100 Subject: [PATCH 1/8] dont sprint when using item anticheat compliance --- .../java/org/saturnclient/modules/mods/AutoSprint.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/saturnclient/modules/mods/AutoSprint.java b/src/main/java/org/saturnclient/modules/mods/AutoSprint.java index d91a7ad..92ad3d0 100644 --- a/src/main/java/org/saturnclient/modules/mods/AutoSprint.java +++ b/src/main/java/org/saturnclient/modules/mods/AutoSprint.java @@ -24,8 +24,12 @@ public class AutoSprint extends Module { if (SaturnClient.client.player == null || SaturnClient.client.getNetworkHandler() == null) { return; } - if (SaturnClient.client.options.forwardKey.isPressed() && !SaturnClient.client.options.backKey.isPressed() && !SaturnClient.client.player.isSneaking() && - !SaturnClient.client.player.horizontalCollision) { + if (SaturnClient.client.options.forwardKey.isPressed() + && !SaturnClient.client.options.backKey.isPressed() + && !SaturnClient.client.player.isSneaking() + && !SaturnClient.client.player.horizontalCollision + && !SaturnClient.client.player.isUsingItem()) { + Objects.requireNonNull(SaturnClient.client.player).setSprinting(true); } } From 496d27b861b95e461cf91d8f77a27de24ac951cc Mon Sep 17 00:00:00 2001 From: RudideC Date: Fri, 16 Jan 2026 19:41:29 +0100 Subject: [PATCH 2/8] enabled mod list updates each mod enable/disable updates the list --- src/main/java/org/saturnclient/modules/Module.java | 7 ++++++- .../java/org/saturnclient/modules/mods/ArmorDisplay.java | 2 +- .../java/org/saturnclient/modules/mods/AutoSprint.java | 4 ++-- .../java/org/saturnclient/modules/mods/Coordinates.java | 2 +- src/main/java/org/saturnclient/modules/mods/Crosshair.java | 2 +- src/main/java/org/saturnclient/modules/mods/Fps.java | 2 +- src/main/java/org/saturnclient/modules/mods/Freelook.java | 2 +- .../java/org/saturnclient/modules/mods/Keystrokes.java | 2 +- .../java/org/saturnclient/modules/mods/PotionDisplay.java | 2 +- 9 files changed, 15 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/saturnclient/modules/Module.java b/src/main/java/org/saturnclient/modules/Module.java index f0ba22b..87527e4 100644 --- a/src/main/java/org/saturnclient/modules/Module.java +++ b/src/main/java/org/saturnclient/modules/Module.java @@ -24,7 +24,12 @@ public abstract class Module { public abstract boolean isEnabled(); - public abstract void setEnabled(boolean e); + public final void setEnabled(boolean e) { + onEnabled(e); + ModManager.updateEnabledModules(); + } + + public abstract void onEnabled(boolean e); public final String getName() { return details.name; diff --git a/src/main/java/org/saturnclient/modules/mods/ArmorDisplay.java b/src/main/java/org/saturnclient/modules/mods/ArmorDisplay.java index 87458fb..248072b 100644 --- a/src/main/java/org/saturnclient/modules/mods/ArmorDisplay.java +++ b/src/main/java/org/saturnclient/modules/mods/ArmorDisplay.java @@ -96,7 +96,7 @@ public class ArmorDisplay extends Module implements HudMod { } @Override - public void setEnabled(boolean e) { + public void onEnabled(boolean e) { enabled.value = e; } } diff --git a/src/main/java/org/saturnclient/modules/mods/AutoSprint.java b/src/main/java/org/saturnclient/modules/mods/AutoSprint.java index 92ad3d0..7352e63 100644 --- a/src/main/java/org/saturnclient/modules/mods/AutoSprint.java +++ b/src/main/java/org/saturnclient/modules/mods/AutoSprint.java @@ -29,7 +29,7 @@ public class AutoSprint extends Module { && !SaturnClient.client.player.isSneaking() && !SaturnClient.client.player.horizontalCollision && !SaturnClient.client.player.isUsingItem()) { - + Objects.requireNonNull(SaturnClient.client.player).setSprinting(true); } } @@ -40,7 +40,7 @@ public class AutoSprint extends Module { } @Override - public void setEnabled(boolean e) { + public void onEnabled(boolean e) { enabled.value = e; } } diff --git a/src/main/java/org/saturnclient/modules/mods/Coordinates.java b/src/main/java/org/saturnclient/modules/mods/Coordinates.java index abebd97..1f9c5dc 100644 --- a/src/main/java/org/saturnclient/modules/mods/Coordinates.java +++ b/src/main/java/org/saturnclient/modules/mods/Coordinates.java @@ -69,7 +69,7 @@ public class Coordinates extends Module implements HudMod { } @Override - public void setEnabled(boolean e) { + public void onEnabled(boolean e) { enabled.value = e; } } diff --git a/src/main/java/org/saturnclient/modules/mods/Crosshair.java b/src/main/java/org/saturnclient/modules/mods/Crosshair.java index 2f9f7cb..1681c7e 100644 --- a/src/main/java/org/saturnclient/modules/mods/Crosshair.java +++ b/src/main/java/org/saturnclient/modules/mods/Crosshair.java @@ -42,7 +42,7 @@ public class Crosshair extends Module { } @Override - public void setEnabled(boolean e) { + public void onEnabled(boolean e) { enabled.value = e; } } diff --git a/src/main/java/org/saturnclient/modules/mods/Fps.java b/src/main/java/org/saturnclient/modules/mods/Fps.java index c71f320..afaea6c 100644 --- a/src/main/java/org/saturnclient/modules/mods/Fps.java +++ b/src/main/java/org/saturnclient/modules/mods/Fps.java @@ -42,7 +42,7 @@ public class Fps extends Module implements HudMod { } @Override - public void setEnabled(boolean e) { + public void onEnabled(boolean e) { enabled.value = e; } diff --git a/src/main/java/org/saturnclient/modules/mods/Freelook.java b/src/main/java/org/saturnclient/modules/mods/Freelook.java index d3a33c4..4ad51e0 100644 --- a/src/main/java/org/saturnclient/modules/mods/Freelook.java +++ b/src/main/java/org/saturnclient/modules/mods/Freelook.java @@ -60,7 +60,7 @@ public class Freelook extends Module { } @Override - public void setEnabled(boolean e) { + public void onEnabled(boolean e) { enabled.value = e; } diff --git a/src/main/java/org/saturnclient/modules/mods/Keystrokes.java b/src/main/java/org/saturnclient/modules/mods/Keystrokes.java index 0eac3b0..5cdef8f 100644 --- a/src/main/java/org/saturnclient/modules/mods/Keystrokes.java +++ b/src/main/java/org/saturnclient/modules/mods/Keystrokes.java @@ -167,7 +167,7 @@ public class Keystrokes extends Module implements HudMod { } @Override - public void setEnabled(boolean e) { + public void onEnabled(boolean e) { enabled.value = e; dimensionsDirty = true; } diff --git a/src/main/java/org/saturnclient/modules/mods/PotionDisplay.java b/src/main/java/org/saturnclient/modules/mods/PotionDisplay.java index 0097a2d..cf9f940 100644 --- a/src/main/java/org/saturnclient/modules/mods/PotionDisplay.java +++ b/src/main/java/org/saturnclient/modules/mods/PotionDisplay.java @@ -99,7 +99,7 @@ public class PotionDisplay extends Module implements HudMod { } @Override - public void setEnabled(boolean e) { + public void onEnabled(boolean e) { enabled.value = e; } } From 7002fbec0e2193620a234ccace316162fe3c2f1a Mon Sep 17 00:00:00 2001 From: RudideC Date: Fri, 16 Jan 2026 19:41:37 +0100 Subject: [PATCH 3/8] prevent race condition --- src/main/java/org/saturnclient/modules/ModManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/saturnclient/modules/ModManager.java b/src/main/java/org/saturnclient/modules/ModManager.java index b8a8f62..c059695 100644 --- a/src/main/java/org/saturnclient/modules/ModManager.java +++ b/src/main/java/org/saturnclient/modules/ModManager.java @@ -31,7 +31,7 @@ public class ModManager { }); } - public static void updateEnabledModules() { + public static synchronized void updateEnabledModules() { ENABLED_MODS.clear(); for (Module m : ALL_MODS) { if (m.isEnabled()) { From c9230da1688ab021c72b6bd9ac3ce4ea5df36ce5 Mon Sep 17 00:00:00 2001 From: RudideC Date: Fri, 16 Jan 2026 22:01:59 +0100 Subject: [PATCH 4/8] faster builds yes --- gradle.properties | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 488452d..252ae09 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,10 @@ # Done to increase the memory available to gradle. -org.gradle.jvmargs=-Xmx1G +org.gradle.jvmargs=-Xmx1G -XX:+UseParallelGC + +org.gradle.daemon=true +org.gradle.parallel=true +org.gradle.configureondemand=true +org.gradle.caching=true minecraft_version=1.21.4 yarn_mappings=1.21.4+build.7 From faa95e664a9feaf3a100f094ff91c641d4432e20 Mon Sep 17 00:00:00 2001 From: RudideC Date: Fri, 16 Jan 2026 22:02:25 +0100 Subject: [PATCH 5/8] faster timeout (so i don't have to wait minutes before testing) --- .../java/org/saturnclient/saturnclient/auth/Network.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/saturnclient/saturnclient/auth/Network.java b/src/main/java/org/saturnclient/saturnclient/auth/Network.java index 4a61515..507f857 100644 --- a/src/main/java/org/saturnclient/saturnclient/auth/Network.java +++ b/src/main/java/org/saturnclient/saturnclient/auth/Network.java @@ -15,6 +15,9 @@ public class Network { static BufferedReader in; static byte[] key = new byte[32]; + private static final int CONNECTION_TIMEOUT = 5000; + private static final int READ_TIMEOUT = 5000; + public static class AES { public static byte[] encryptAES256(String message, byte[] key) throws Exception { Cipher cipher = Cipher.getInstance("AES/ECB/PKCS5Padding"); @@ -37,7 +40,11 @@ public class Network { // Generate AES key new SecureRandom().nextBytes(key); - socket = new Socket("77.247.92.168", 8080); + socket = new Socket(); + socket.connect(new InetSocketAddress("77.247.92.168", 8080), CONNECTION_TIMEOUT); + + socket.setSoTimeout(READ_TIMEOUT); + // out = new DataOutputStream(socket.getOutputStream()); out = new PrintWriter(socket.getOutputStream(), true); in = new BufferedReader(new InputStreamReader(socket.getInputStream())); From 8e2c986ae49ace8ca8fc02b2390f286399482a00 Mon Sep 17 00:00:00 2001 From: RudideC Date: Fri, 16 Jan 2026 22:02:48 +0100 Subject: [PATCH 6/8] fullbright new mod --- .../org/saturnclient/modules/ModManager.java | 3 +- .../saturnclient/modules/mods/Fullbright.java | 39 ++++++++++++++++++ .../mixins/LightmapTextureManagerMixin.java | 23 +++++++++++ .../textures/gui/mod/fullbright.png | Bin 0 -> 697 bytes src/main/resources/mods.mixins.json | 3 +- 5 files changed, 66 insertions(+), 2 deletions(-) create mode 100644 src/main/java/org/saturnclient/modules/mods/Fullbright.java create mode 100644 src/main/java/org/saturnclient/modules/mods/mixins/LightmapTextureManagerMixin.java create mode 100644 src/main/resources/assets/saturnclient/textures/gui/mod/fullbright.png diff --git a/src/main/java/org/saturnclient/modules/ModManager.java b/src/main/java/org/saturnclient/modules/ModManager.java index c059695..e6823bb 100644 --- a/src/main/java/org/saturnclient/modules/ModManager.java +++ b/src/main/java/org/saturnclient/modules/ModManager.java @@ -16,7 +16,8 @@ public class ModManager { new PotionDisplay(), new Coordinates(), new Freelook(), - new Keystrokes() + new Keystrokes(), + new Fullbright() }; public static void init() { diff --git a/src/main/java/org/saturnclient/modules/mods/Fullbright.java b/src/main/java/org/saturnclient/modules/mods/Fullbright.java new file mode 100644 index 0000000..682e1e2 --- /dev/null +++ b/src/main/java/org/saturnclient/modules/mods/Fullbright.java @@ -0,0 +1,39 @@ +package org.saturnclient.modules.mods; + +import org.saturnclient.modules.Module; +import org.saturnclient.modules.ModuleDetails; +import org.saturnclient.saturnclient.config.Property; + +public class Fullbright extends Module { + private static Property enabled = Property.bool(false); + private static Property brightness = Property.integer(100); + + public Fullbright() { + super( + new ModuleDetails("Fullbright", "fullbright") + .description("Allows you to see in the dark") + .tags("Camera") + .version("v0.1.0"), + enabled.named("Enabled"), + brightness.named("Brightness %")); + } + + @Override + public boolean isEnabled() { + return enabled.value; + } + + @Override + public void onEnabled(boolean e) { + enabled.value = e; + } + + public static boolean shouldOverrideBrightness() { + return enabled.value; + } + + public static float getBrightnessValue() { + return brightness.value / 10; + } + +} diff --git a/src/main/java/org/saturnclient/modules/mods/mixins/LightmapTextureManagerMixin.java b/src/main/java/org/saturnclient/modules/mods/mixins/LightmapTextureManagerMixin.java new file mode 100644 index 0000000..34289f6 --- /dev/null +++ b/src/main/java/org/saturnclient/modules/mods/mixins/LightmapTextureManagerMixin.java @@ -0,0 +1,23 @@ +// code modified from Gamma utils: https://github.com/Sjouwer/gamma-utils +package org.saturnclient.modules.mods.mixins; + +import com.llamalad7.mixinextras.injector.ModifyExpressionValue; +import net.minecraft.client.render.LightmapTextureManager; +import org.saturnclient.modules.mods.Fullbright; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; + +@Mixin(LightmapTextureManager.class) +public class LightmapTextureManagerMixin { + + @ModifyExpressionValue( + method = "update", + at = @At(value = "INVOKE", target = "Ljava/lang/Math;max(FF)F", ordinal = 0) + ) + private float modifyGamma(float original) { + if (Fullbright.shouldOverrideBrightness()) { + return Fullbright.getBrightnessValue(); + } + return original; + } +} diff --git a/src/main/resources/assets/saturnclient/textures/gui/mod/fullbright.png b/src/main/resources/assets/saturnclient/textures/gui/mod/fullbright.png new file mode 100644 index 0000000000000000000000000000000000000000..dfa9f7a583088a07a0740fe01da8b58388ebc482 GIT binary patch literal 697 zcmV;q0!ICbP)3+h!>OxSe3+( zXu{Fcdc@tpOXv$29s@X`h=>oM!Q^Ku)FegQ?)Hq`vkaLp>C0?a*Z1|`s@g1T(4avQ z0As)tZLO?s;GB4lm8@<6HjRMItZtwY5E;NVU@o-);EwnzO>_YH&q}5*H%x%dh7qt4 zcx&~wzxW!DDL`h$VrQ5LU>4X1_JCUfzg0rs5z!U$K*xNa2DX9U{2ON~Y|7X@*Ri_E$qx{9 z7dRmtKY)kXWdJY_{Bj6>lGOp0v~~2Gh1lF5HTh|s%^Y6_%`C709GU*#fyruFUnI2c zke>;#nQ=t)s$uKDZR~-aFJQaq9PD;lwtf<8cF&iv-!=A6Q)E)FoVG6Ef$1lAdyY;C zKQD~^dnW{0_xKOX?3_%>#h&RW4^)n&5(1Wu{Ri{?V1WOXItbYRUjZ%Y2)uRLYa3N2 z-a>CY{vSsz4rpu>>kzL-BUXSwTd%+z3k7T+8M`xJA}!mn9N{SNA-k!;TaK-2*!sy# z0jG|L#UV3q$)5l>s%8B*sRy25ZdVWKvbLAbo)`QC?q!z&8cy59WEf71gdS0$FSVqB z$C8Yg?~{79+Jo&ve%rF!hVzv=t|XxeOerTMwvoGC9w==>dewK^P*qBqFsbi4W2O;N z>#_>v3tI=;W=C4s;$msBS3zmIC&Ftc4 fQVkk3$SnQ<+wIF!@{WD(00000NkvXXu0mjfk#Rfb literal 0 HcmV?d00001 diff --git a/src/main/resources/mods.mixins.json b/src/main/resources/mods.mixins.json index 2fbf6c5..9ec0737 100644 --- a/src/main/resources/mods.mixins.json +++ b/src/main/resources/mods.mixins.json @@ -6,7 +6,8 @@ "client": [ "CameraMixin", "EntityMixin", - "RenderMixin" + "RenderMixin", + "LightmapTextureManagerMixin" ], "injectors": { "defaultRequire": 1 From 687bda68a195cefafd964b1112468380c2bb3092 Mon Sep 17 00:00:00 2001 From: RudideC Date: Fri, 16 Jan 2026 22:04:57 +0100 Subject: [PATCH 7/8] renamed potiondisplay to status effects this is the name most clients use --- .../mods/{PotionDisplay.java => StatusEffects.java} | 8 ++++---- .../textures/gui/mod/{potion.png => effect.png} | Bin 2 files changed, 4 insertions(+), 4 deletions(-) rename src/main/java/org/saturnclient/modules/mods/{PotionDisplay.java => StatusEffects.java} (94%) rename src/main/resources/assets/saturnclient/textures/gui/mod/{potion.png => effect.png} (100%) diff --git a/src/main/java/org/saturnclient/modules/mods/PotionDisplay.java b/src/main/java/org/saturnclient/modules/mods/StatusEffects.java similarity index 94% rename from src/main/java/org/saturnclient/modules/mods/PotionDisplay.java rename to src/main/java/org/saturnclient/modules/mods/StatusEffects.java index cf9f940..e25dd27 100644 --- a/src/main/java/org/saturnclient/modules/mods/PotionDisplay.java +++ b/src/main/java/org/saturnclient/modules/mods/StatusEffects.java @@ -20,7 +20,7 @@ import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.util.Identifier; import net.minecraft.util.math.MathHelper; -public class PotionDisplay extends Module implements HudMod { +public class StatusEffects extends Module implements HudMod { public static Property enabled = Property.bool(false); private static ModDimensions dimensions = new ModDimensions(60, 0); @@ -30,9 +30,9 @@ public class PotionDisplay extends Module implements HudMod { new StatusEffectInstance(Registries.STATUS_EFFECT.getEntry(Identifier.ofVanilla("fire_resistance")).get(), 12000, 2), }; - public PotionDisplay() { - super(new ModuleDetails("Potion Display", "potion") - .description("Displays potion effects") + public StatusEffects() { + super(new ModuleDetails("Status effects", "effect") + .description("Displays status effects") .version("v0.1.0") .tags("Utility"), diff --git a/src/main/resources/assets/saturnclient/textures/gui/mod/potion.png b/src/main/resources/assets/saturnclient/textures/gui/mod/effect.png similarity index 100% rename from src/main/resources/assets/saturnclient/textures/gui/mod/potion.png rename to src/main/resources/assets/saturnclient/textures/gui/mod/effect.png From 8f111badf63ccc130eb8843140995b714dff2f0d Mon Sep 17 00:00:00 2001 From: RudideC Date: Fri, 16 Jan 2026 22:05:35 +0100 Subject: [PATCH 8/8] oops, forgot --- src/main/java/org/saturnclient/modules/ModManager.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/saturnclient/modules/ModManager.java b/src/main/java/org/saturnclient/modules/ModManager.java index e6823bb..42b2d25 100644 --- a/src/main/java/org/saturnclient/modules/ModManager.java +++ b/src/main/java/org/saturnclient/modules/ModManager.java @@ -13,7 +13,7 @@ public class ModManager { new AutoSprint(), new ArmorDisplay(), new Fps(), - new PotionDisplay(), + new StatusEffects(), new Coordinates(), new Freelook(), new Keystrokes(),