From 50de2604202bdb8ac3a69d0e5625d60ede57512b Mon Sep 17 00:00:00 2001
From: ExternalTime <84183548+ExternalTime@users.noreply.github.com>
Date: Thu, 7 Oct 2021 19:54:33 +0200
Subject: Changed SkyblockerMod into a singleton

---
 .../xmrvizzy/skyblocker/SkyblockerInitializer.java | 15 +++++++++++
 .../java/me/xmrvizzy/skyblocker/SkyblockerMod.java | 30 ++++++++++------------
 .../skyblocker/mixin/MinecraftClientMixin.java     |  2 +-
 src/main/resources/fabric.mod.json                 |  2 +-
 4 files changed, 30 insertions(+), 19 deletions(-)
 create mode 100644 src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java

diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java
new file mode 100644
index 00000000..b3a50697
--- /dev/null
+++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerInitializer.java
@@ -0,0 +1,15 @@
+package me.xmrvizzy.skyblocker;
+
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
+import me.xmrvizzy.skyblocker.skyblock.HotbarSlotLock;
+import me.xmrvizzy.skyblocker.skyblock.item.PriceInfoTooltip;
+import net.fabricmc.api.ClientModInitializer;
+
+public class SkyblockerInitializer implements ClientModInitializer {
+    @Override
+    public void onInitializeClient() {
+        HotbarSlotLock.init();
+        SkyblockerConfig.init();
+        PriceInfoTooltip.init();
+    }
+}
diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java
index 2bef2f28..89873085 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java
@@ -1,32 +1,28 @@
 package me.xmrvizzy.skyblocker;
 
-import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
-import me.xmrvizzy.skyblocker.skyblock.HotbarSlotLock;
 import me.xmrvizzy.skyblocker.skyblock.dungeon.DungeonBlaze;
-import me.xmrvizzy.skyblocker.skyblock.item.PriceInfoTooltip;
-import me.xmrvizzy.skyblocker.utils.RenderUtils;
 import me.xmrvizzy.skyblocker.utils.Utils;
-import net.fabricmc.api.ClientModInitializer;
 import net.minecraft.client.MinecraftClient;
 
-public class SkyblockerMod implements ClientModInitializer {
+public class SkyblockerMod {
     public static final String NAMESPACE = "skyblocker";
-    private static int TICKS = 0;
+    private static final SkyblockerMod instance = new SkyblockerMod();
 
-    @Override
-    public void onInitializeClient() {
-        HotbarSlotLock.init();
-        SkyblockerConfig.init();
-        PriceInfoTooltip.init();
+    private SkyblockerMod() {
     }
 
+    public static SkyblockerMod getInstance() {
+        return instance;
+    }
+
+    private int ticks = 0;
 
-    public static void onTick() {
+    public void onTick() {
         MinecraftClient client = MinecraftClient.getInstance();
         if (client == null) return;
 
-        TICKS++;
-        if (TICKS % 4 == 0)
+        ticks++;
+        if (ticks % 4 == 0)
             try {
                 if (Utils.isDungeons) {
                     DungeonBlaze.DungeonBlaze();
@@ -34,11 +30,11 @@ public class SkyblockerMod implements ClientModInitializer {
             } catch (Exception e) {
                 //System.out.println("Blazesolver: " + e);
             }
-        if (TICKS % 20 == 0) {
+        if (ticks % 20 == 0) {
             if (client.world != null && !client.isInSingleplayer())
                 Utils.sbChecker();
 
-            TICKS = 0;
+            ticks = 0;
         }
     }
 }
\ No newline at end of file
diff --git a/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java b/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java
index 5ef5b0b4..e5f1b829 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/mixin/MinecraftClientMixin.java
@@ -19,7 +19,7 @@ public class MinecraftClientMixin {
 
     @Inject(method = "tick", at = @At("HEAD"))
     public void tick(CallbackInfo ci) {
-        SkyblockerMod.onTick();
+        SkyblockerMod.getInstance().onTick();
     }
 
     @Inject(method = "handleInputEvents", at = @At("HEAD"))
diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json
index 9effd387..fbb1dd91 100644
--- a/src/main/resources/fabric.mod.json
+++ b/src/main/resources/fabric.mod.json
@@ -16,7 +16,7 @@
   "environment": "client",
   "entrypoints": {
     "client": [
-      "me.xmrvizzy.skyblocker.SkyblockerMod"
+      "me.xmrvizzy.skyblocker.SkyblockerInitializer"
     ],
     "modmenu": [
       "me.xmrvizzy.skyblocker.config.modmenu.ModMenuEntry"
-- 
cgit