diff options
author | Wyvest <45589059+Wyvest@users.noreply.github.com> | 2022-06-24 23:44:58 +0700 |
---|---|---|
committer | Wyvest <45589059+Wyvest@users.noreply.github.com> | 2022-06-24 23:44:58 +0700 |
commit | f1830199d99b666f28c2b3b246f688f102adb427 (patch) | |
tree | 07fba5e7fce5e523223e8fc9da70f7783d7f15f9 /src/main/java/cc/polyfrost/oneconfig/internal | |
parent | d4463b33342ccb5ea86c2a2c9da37b9b861b6674 (diff) | |
download | OneConfig-f1830199d99b666f28c2b3b246f688f102adb427.tar.gz OneConfig-f1830199d99b666f28c2b3b246f688f102adb427.tar.bz2 OneConfig-f1830199d99b666f28c2b3b246f688f102adb427.zip |
TextHud revamp
add docs to Hud
fix config not saving when exiting prematurely
some new events
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig/internal')
4 files changed, 37 insertions, 3 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/internal/OneConfig.java b/src/main/java/cc/polyfrost/oneconfig/internal/OneConfig.java index 479192d..c91b4e9 100644 --- a/src/main/java/cc/polyfrost/oneconfig/internal/OneConfig.java +++ b/src/main/java/cc/polyfrost/oneconfig/internal/OneConfig.java @@ -1,6 +1,8 @@ package cc.polyfrost.oneconfig.internal; import cc.polyfrost.oneconfig.events.EventManager; +import cc.polyfrost.oneconfig.events.event.ShutdownEvent; +import cc.polyfrost.oneconfig.gui.OneConfigGui; import cc.polyfrost.oneconfig.internal.command.OneConfigCommand; import cc.polyfrost.oneconfig.internal.config.OneConfigConfig; import cc.polyfrost.oneconfig.internal.config.Preferences; @@ -8,6 +10,7 @@ import cc.polyfrost.oneconfig.internal.config.core.ConfigCore; import cc.polyfrost.oneconfig.internal.config.core.KeyBindHandler; import cc.polyfrost.oneconfig.internal.gui.BlurHandler; import cc.polyfrost.oneconfig.internal.hud.HudCore; +import cc.polyfrost.oneconfig.libs.eventbus.Subscribe; import cc.polyfrost.oneconfig.utils.commands.CommandManager; import cc.polyfrost.oneconfig.utils.gui.GuiUtils; import cc.polyfrost.oneconfig.utils.hypixel.HypixelUtils; @@ -21,6 +24,11 @@ import java.io.File; */ @net.minecraftforge.fml.common.Mod(modid = "@ID@", name = "@NAME@", version = "@VER@") public class OneConfig { + + public OneConfig() { + EventManager.INSTANCE.register(this); + } + public static final File oneConfigDir = new File("./OneConfig"); public static final Logger LOGGER = LogManager.getLogger("@NAME@"); public static OneConfigConfig config; @@ -73,4 +81,9 @@ public class OneConfig { public static boolean isObfuscated() { return isObfuscated; } + + @Subscribe + private void onShutdown(ShutdownEvent event) { + ConfigCore.saveAll(); + } } diff --git a/src/main/java/cc/polyfrost/oneconfig/internal/config/core/ConfigCore.java b/src/main/java/cc/polyfrost/oneconfig/internal/config/core/ConfigCore.java index 6b88afa..90c1062 100644 --- a/src/main/java/cc/polyfrost/oneconfig/internal/config/core/ConfigCore.java +++ b/src/main/java/cc/polyfrost/oneconfig/internal/config/core/ConfigCore.java @@ -7,9 +7,19 @@ import cc.polyfrost.oneconfig.internal.hud.HudCore; import java.util.ArrayList; import java.util.List; +import java.util.Timer; +import java.util.TimerTask; import java.util.stream.Collectors; public class ConfigCore { + static { + new Timer().scheduleAtFixedRate(new TimerTask() { + @Override + public void run() { + saveAll(); + } + }, 30000, 30000); + } public static List<Mod> oneConfigMods = new ArrayList<>(); public static void saveAll() { diff --git a/src/main/java/cc/polyfrost/oneconfig/internal/hud/HudCore.java b/src/main/java/cc/polyfrost/oneconfig/internal/hud/HudCore.java index 04a5e69..2d92b3c 100644 --- a/src/main/java/cc/polyfrost/oneconfig/internal/hud/HudCore.java +++ b/src/main/java/cc/polyfrost/oneconfig/internal/hud/HudCore.java @@ -1,20 +1,20 @@ package cc.polyfrost.oneconfig.internal.hud; import cc.polyfrost.oneconfig.events.event.HudRenderEvent; -import cc.polyfrost.oneconfig.hud.BasicHud; +import cc.polyfrost.oneconfig.hud.Hud; import cc.polyfrost.oneconfig.libs.universal.UResolution; import cc.polyfrost.oneconfig.libs.eventbus.Subscribe; import java.util.ArrayList; public class HudCore { - public static ArrayList<BasicHud> huds = new ArrayList<>(); + public static ArrayList<Hud> huds = new ArrayList<>(); public static boolean editing = false; @Subscribe public void onRender(HudRenderEvent event) { if (editing) return; - for (BasicHud hud : huds) { + for (Hud hud : huds) { if (hud.enabled) hud.drawAll(hud.getXScaled(UResolution.getScaledWidth()), hud.getYScaled(UResolution.getScaledHeight()), hud.scale, true); } diff --git a/src/main/java/cc/polyfrost/oneconfig/internal/mixin/MinecraftMixin.java b/src/main/java/cc/polyfrost/oneconfig/internal/mixin/MinecraftMixin.java index 6308fdb..5fb40f8 100644 --- a/src/main/java/cc/polyfrost/oneconfig/internal/mixin/MinecraftMixin.java +++ b/src/main/java/cc/polyfrost/oneconfig/internal/mixin/MinecraftMixin.java @@ -20,6 +20,17 @@ public class MinecraftMixin { @Shadow private Timer timer; + @Inject(method = "shutdownMinecraftApplet", at = @At("HEAD")) + private void onShutdown(CallbackInfo ci) { + EventManager.INSTANCE.post(new PreShutdownEvent()); + } + + @Inject(method = "startGame", at = @At("HEAD")) + private void onStart(CallbackInfo ci) { + EventManager.INSTANCE.post(new StartEvent()); + Runtime.getRuntime().addShutdownHook(new Thread(() -> EventManager.INSTANCE.post(new ShutdownEvent()))); + } + @Inject(method = "startGame", at = @At(value = "INVOKE", target = "Lnet/minecraftforge/fml/client/FMLClientHandler;beginMinecraftLoading(Lnet/minecraft/client/Minecraft;Ljava/util/List;Lnet/minecraft/client/resources/IReloadableResourceManager;)V", remap = false), remap = true) private void onPreLaunch(CallbackInfo ci) { OneConfig.preLaunch(); |