From e287af40df41735ccd3da997021a1c4dbdc87933 Mon Sep 17 00:00:00 2001 From: Lemonnik6484 Date: Wed, 23 Apr 2025 18:03:45 +0200 Subject: [PATCH 1/9] config options --- .../java/net/snackbag/tt20/config/MainConfig.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/net/snackbag/tt20/config/MainConfig.java b/src/main/java/net/snackbag/tt20/config/MainConfig.java index fbec57c..257dfb5 100644 --- a/src/main/java/net/snackbag/tt20/config/MainConfig.java +++ b/src/main/java/net/snackbag/tt20/config/MainConfig.java @@ -12,6 +12,7 @@ public class MainConfig extends JSONConfiguration { private boolean sleepingAcceleration = true; private boolean timeAcceleration = true; private boolean randomTickSpeedAcceleration = true; + private boolean singlePlayerDisabled = true; private boolean serverWatchdog = true; private boolean singlePlayerWarning = true; @@ -33,6 +34,7 @@ public MainConfig() { putIfEmpty("singleplayer-warning", singlePlayerWarning); putIfEmpty("time-acceleration", timeAcceleration); putIfEmpty("random-tickspeed-acceleration", randomTickSpeedAcceleration); + putIfEmpty("singleplayer-disable", singlePlayerDisabled); putIfEmpty("automatic-updater", automaticUpdater); save(); @@ -55,6 +57,7 @@ public void reload() { this.singlePlayerWarning = getAsBooleanOrDefault("singleplayer-warning", singlePlayerWarning); this.timeAcceleration = getAsBooleanOrDefault("time-acceleration", timeAcceleration); this.randomTickSpeedAcceleration = getAsBooleanOrDefault("random-tickspeed-acceleration", randomTickSpeedAcceleration); + this.singlePlayerDisabled = getAsBooleanOrDefault("singleplayer-disabled", singlePlayerDisabled); this.automaticUpdater = getAsBooleanOrDefault("automatic-updater", automaticUpdater); } @@ -166,6 +169,14 @@ public void randomTickSpeedAcceleration(boolean enabled) { put("random-tickspeed-acceleration", enabled); } + public boolean singlePlayerDisabled() { + return singlePlayerDisabled; + } + + public void singlePlayerDisabled(boolean enabled) { + put("singleplayer-disabled", enabled); + } + public boolean singlePlayerWarning() { return singlePlayerWarning; } From cf0b6c8607c5a0e5c68c9ce36c8d68dad673fa76 Mon Sep 17 00:00:00 2001 From: Lemonnik6484 Date: Wed, 23 Apr 2025 18:07:24 +0200 Subject: [PATCH 2/9] command output --- src/main/java/net/snackbag/tt20/command/MainCommand.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/net/snackbag/tt20/command/MainCommand.java b/src/main/java/net/snackbag/tt20/command/MainCommand.java index 40674c0..dfb50b1 100644 --- a/src/main/java/net/snackbag/tt20/command/MainCommand.java +++ b/src/main/java/net/snackbag/tt20/command/MainCommand.java @@ -38,6 +38,7 @@ private static int executeStatus(CommandContext context) { source.sendMessage(Text.literal("§7Time acceleration: " + (TT20.config.timeAcceleration() ? "§aON" : "§cOFF"))); source.sendMessage(Text.literal("§7Random tickspeed acceleration: " + (TT20.config.randomTickSpeedAcceleration() ? "§aON" : "§cOFF"))); source.sendMessage(Text.literal("§7Singleplayer warning: " + (TT20.config.singlePlayerWarning() ? "§aON" : "§cOFF"))); + source.sendMessage(Text.literal("§7Singleplayer disabled: " + (TT20.config.singlePlayerDisabled() ? "§aON" : "§cOFF"))); source.sendMessage(Text.literal("§7Server watchdog: " + (TT20.config.serverWatchdog() ? "§aON" : "§cOFF"))); executeTps(context, false); source.sendMessage(Text.literal("\n§8Version: §7" + TT20.VERSION)); From 67db608a6d0d17751c31871019c3de77600ad7da Mon Sep 17 00:00:00 2001 From: Lemonnik6484 Date: Wed, 23 Apr 2025 18:10:10 +0200 Subject: [PATCH 3/9] better config id --- .../net/snackbag/tt20/command/MainCommand.java | 2 +- .../java/net/snackbag/tt20/config/MainConfig.java | 14 +++++++------- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/snackbag/tt20/command/MainCommand.java b/src/main/java/net/snackbag/tt20/command/MainCommand.java index dfb50b1..162eefd 100644 --- a/src/main/java/net/snackbag/tt20/command/MainCommand.java +++ b/src/main/java/net/snackbag/tt20/command/MainCommand.java @@ -38,7 +38,7 @@ private static int executeStatus(CommandContext context) { source.sendMessage(Text.literal("§7Time acceleration: " + (TT20.config.timeAcceleration() ? "§aON" : "§cOFF"))); source.sendMessage(Text.literal("§7Random tickspeed acceleration: " + (TT20.config.randomTickSpeedAcceleration() ? "§aON" : "§cOFF"))); source.sendMessage(Text.literal("§7Singleplayer warning: " + (TT20.config.singlePlayerWarning() ? "§aON" : "§cOFF"))); - source.sendMessage(Text.literal("§7Singleplayer disabled: " + (TT20.config.singlePlayerDisabled() ? "§aON" : "§cOFF"))); + source.sendMessage(Text.literal("§7Singleplayer enabled: " + (TT20.config.singlePlayerEnabled() ? "§aON" : "§cOFF"))); source.sendMessage(Text.literal("§7Server watchdog: " + (TT20.config.serverWatchdog() ? "§aON" : "§cOFF"))); executeTps(context, false); source.sendMessage(Text.literal("\n§8Version: §7" + TT20.VERSION)); diff --git a/src/main/java/net/snackbag/tt20/config/MainConfig.java b/src/main/java/net/snackbag/tt20/config/MainConfig.java index 257dfb5..37aaeeb 100644 --- a/src/main/java/net/snackbag/tt20/config/MainConfig.java +++ b/src/main/java/net/snackbag/tt20/config/MainConfig.java @@ -12,7 +12,7 @@ public class MainConfig extends JSONConfiguration { private boolean sleepingAcceleration = true; private boolean timeAcceleration = true; private boolean randomTickSpeedAcceleration = true; - private boolean singlePlayerDisabled = true; + private boolean singlePlayerEnabled = true; private boolean serverWatchdog = true; private boolean singlePlayerWarning = true; @@ -34,7 +34,7 @@ public MainConfig() { putIfEmpty("singleplayer-warning", singlePlayerWarning); putIfEmpty("time-acceleration", timeAcceleration); putIfEmpty("random-tickspeed-acceleration", randomTickSpeedAcceleration); - putIfEmpty("singleplayer-disable", singlePlayerDisabled); + putIfEmpty("singleplayer-enable", singlePlayerEnabled); putIfEmpty("automatic-updater", automaticUpdater); save(); @@ -57,7 +57,7 @@ public void reload() { this.singlePlayerWarning = getAsBooleanOrDefault("singleplayer-warning", singlePlayerWarning); this.timeAcceleration = getAsBooleanOrDefault("time-acceleration", timeAcceleration); this.randomTickSpeedAcceleration = getAsBooleanOrDefault("random-tickspeed-acceleration", randomTickSpeedAcceleration); - this.singlePlayerDisabled = getAsBooleanOrDefault("singleplayer-disabled", singlePlayerDisabled); + this.singlePlayerEnabled = getAsBooleanOrDefault("singleplayer-enabled", singlePlayerEnabled); this.automaticUpdater = getAsBooleanOrDefault("automatic-updater", automaticUpdater); } @@ -169,12 +169,12 @@ public void randomTickSpeedAcceleration(boolean enabled) { put("random-tickspeed-acceleration", enabled); } - public boolean singlePlayerDisabled() { - return singlePlayerDisabled; + public boolean singlePlayerEnabled() { + return singlePlayerEnabled; } - public void singlePlayerDisabled(boolean enabled) { - put("singleplayer-disabled", enabled); + public void singlePlayerEnabled(boolean enabled) { + put("singleplayer-enabled", enabled); } public boolean singlePlayerWarning() { From d456e409c6f28ef61eeb190d43821fa6d313196f Mon Sep 17 00:00:00 2001 From: Lemonnik6484 Date: Wed, 23 Apr 2025 18:10:55 +0200 Subject: [PATCH 4/9] toggle with integrated server start --- .../snackbag/tt20/mixin/client/IntegratedServerMixin.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/net/snackbag/tt20/mixin/client/IntegratedServerMixin.java b/src/main/java/net/snackbag/tt20/mixin/client/IntegratedServerMixin.java index ed7f50d..038d4ab 100644 --- a/src/main/java/net/snackbag/tt20/mixin/client/IntegratedServerMixin.java +++ b/src/main/java/net/snackbag/tt20/mixin/client/IntegratedServerMixin.java @@ -8,10 +8,16 @@ import org.spongepowered.asm.mixin.injection.At; import org.spongepowered.asm.mixin.injection.Inject; import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; @Environment(EnvType.CLIENT) @Mixin(IntegratedServer.class) public abstract class IntegratedServerMixin { + @Inject(method = "setupServer", at = @At("HEAD")) + private void disableTT20(CallbackInfoReturnable cir) { + TT20.config.enabled(TT20.config.singlePlayerEnabled()); + } + @Inject(method = "stop", at = @At("HEAD")) private void resetWarn(boolean waitForShutdown, CallbackInfo ci) { TT20.warned = false; From 1867fdffc25abce5afcffdfbf4b08a5b75a475f9 Mon Sep 17 00:00:00 2001 From: Lemonnik6484 Date: Wed, 23 Apr 2025 18:11:22 +0200 Subject: [PATCH 5/9] new chat warning message --- .../java/net/snackbag/tt20/mixin/client/ChatHudMixin.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/java/net/snackbag/tt20/mixin/client/ChatHudMixin.java b/src/main/java/net/snackbag/tt20/mixin/client/ChatHudMixin.java index b07d707..f9c88d3 100644 --- a/src/main/java/net/snackbag/tt20/mixin/client/ChatHudMixin.java +++ b/src/main/java/net/snackbag/tt20/mixin/client/ChatHudMixin.java @@ -5,7 +5,6 @@ //? if >=1.20.1 import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.hud.ChatHud; -import net.minecraft.client.util.math.MatrixStack; import net.minecraft.text.Text; import net.snackbag.tt20.TT20; import org.spongepowered.asm.mixin.Mixin; @@ -26,8 +25,10 @@ public abstract class ChatHudMixin { *///?} else { private void onPlayerConnectWarn(DrawContext context, int currentTick, int mouseX, int mouseY, CallbackInfo ci) { //?} - if (TT20.warned || !TT20.config.singlePlayerWarning()) return; - addMessage(Text.literal("§c§lCritical incompatibilities found!\n\n§c§6TT20 §cis not stable on singleplayer and you may find yourself having unwanted side effects. You can disable each feature in the config if it gets too annoying.")); + if (TT20.config.singlePlayerEnabled() && TT20.config.singlePlayerWarning() && !TT20.warned) { + addMessage(Text.literal("§c§lTT20 is Active!")); + addMessage(Text.literal("§c§6TT20 §cis not stable on singleplayer and you may find yourself having unwanted side effects. You can disable each feature in the config.")); + } TT20.warned = true; } } From f2a39a417e4896d0bcf5f36f56dffc92945791db Mon Sep 17 00:00:00 2001 From: Lemonnik6484 Date: Wed, 23 Apr 2025 18:16:07 +0200 Subject: [PATCH 6/9] d --- src/main/java/net/snackbag/tt20/config/MainConfig.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/net/snackbag/tt20/config/MainConfig.java b/src/main/java/net/snackbag/tt20/config/MainConfig.java index 37aaeeb..9e70344 100644 --- a/src/main/java/net/snackbag/tt20/config/MainConfig.java +++ b/src/main/java/net/snackbag/tt20/config/MainConfig.java @@ -14,7 +14,6 @@ public class MainConfig extends JSONConfiguration { private boolean randomTickSpeedAcceleration = true; private boolean singlePlayerEnabled = true; private boolean serverWatchdog = true; - private boolean singlePlayerWarning = true; private boolean automaticUpdater = true; @@ -34,7 +33,7 @@ public MainConfig() { putIfEmpty("singleplayer-warning", singlePlayerWarning); putIfEmpty("time-acceleration", timeAcceleration); putIfEmpty("random-tickspeed-acceleration", randomTickSpeedAcceleration); - putIfEmpty("singleplayer-enable", singlePlayerEnabled); + putIfEmpty("singleplayer-enabled", singlePlayerEnabled); putIfEmpty("automatic-updater", automaticUpdater); save(); From 0ad08f7aa3cbf13fcd67aa2e3b437e2011cd6963 Mon Sep 17 00:00:00 2001 From: Lemonnik6484 Date: Wed, 23 Apr 2025 18:27:54 +0200 Subject: [PATCH 7/9] fix chat warning formatting --- src/main/java/net/snackbag/tt20/mixin/client/ChatHudMixin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/net/snackbag/tt20/mixin/client/ChatHudMixin.java b/src/main/java/net/snackbag/tt20/mixin/client/ChatHudMixin.java index f9c88d3..0487e9a 100644 --- a/src/main/java/net/snackbag/tt20/mixin/client/ChatHudMixin.java +++ b/src/main/java/net/snackbag/tt20/mixin/client/ChatHudMixin.java @@ -26,7 +26,7 @@ public abstract class ChatHudMixin { private void onPlayerConnectWarn(DrawContext context, int currentTick, int mouseX, int mouseY, CallbackInfo ci) { //?} if (TT20.config.singlePlayerEnabled() && TT20.config.singlePlayerWarning() && !TT20.warned) { - addMessage(Text.literal("§c§lTT20 is Active!")); + addMessage(Text.literal("§c§6TT20 §cis §lActive§r§c!")); addMessage(Text.literal("§c§6TT20 §cis not stable on singleplayer and you may find yourself having unwanted side effects. You can disable each feature in the config.")); } TT20.warned = true; From af8d3f64aed8d65aa94395bdefe653e590e7b40b Mon Sep 17 00:00:00 2001 From: Lemonnik6484 Date: Wed, 23 Apr 2025 18:28:42 +0200 Subject: [PATCH 8/9] auto toggle reload and save --- .../net/snackbag/tt20/mixin/client/IntegratedServerMixin.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/main/java/net/snackbag/tt20/mixin/client/IntegratedServerMixin.java b/src/main/java/net/snackbag/tt20/mixin/client/IntegratedServerMixin.java index 038d4ab..34077b9 100644 --- a/src/main/java/net/snackbag/tt20/mixin/client/IntegratedServerMixin.java +++ b/src/main/java/net/snackbag/tt20/mixin/client/IntegratedServerMixin.java @@ -15,7 +15,9 @@ public abstract class IntegratedServerMixin { @Inject(method = "setupServer", at = @At("HEAD")) private void disableTT20(CallbackInfoReturnable cir) { + TT20.config.reload(); TT20.config.enabled(TT20.config.singlePlayerEnabled()); + TT20.config.save(); } @Inject(method = "stop", at = @At("HEAD")) From 4a7bc48fa0480b395742a05d8c042caa9fbc4d8a Mon Sep 17 00:00:00 2001 From: Lemonnik6484 Date: Wed, 23 Apr 2025 18:28:54 +0200 Subject: [PATCH 9/9] auto toggle on reload --- src/main/java/net/snackbag/tt20/command/MainCommand.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/java/net/snackbag/tt20/command/MainCommand.java b/src/main/java/net/snackbag/tt20/command/MainCommand.java index 162eefd..b6b223c 100644 --- a/src/main/java/net/snackbag/tt20/command/MainCommand.java +++ b/src/main/java/net/snackbag/tt20/command/MainCommand.java @@ -57,6 +57,9 @@ private static int executeReload(CommandContext context) { TT20.blockEntityMaskConfig.reload(); source.sendMessage(Text.literal("Reloaded block entity mask config")); + if (!source.getServer().isDedicated()) TT20.config.enabled(TT20.config.singlePlayerEnabled()); + TT20.config.save(); + return 1; }