aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java
diff options
context:
space:
mode:
authorSpencer <spenceralj@gmail.com>2023-07-10 17:52:19 -0400
committerSpencer <spenceralj@gmail.com>2023-07-10 17:52:19 -0400
commit0f0f322d85c6b5ec40bdf3e569db67bf1252f4bc (patch)
tree4081363c9ecf4c4de324d8bf485b2766175d8d04 /src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java
parent7a223d5a93b26a701911f7606d135296c1d5822c (diff)
parent4e5b4fb480339e303e0b31ab0a3a07c90c3912fc (diff)
downloadSkyblocker-0f0f322d85c6b5ec40bdf3e569db67bf1252f4bc.tar.gz
Skyblocker-0f0f322d85c6b5ec40bdf3e569db67bf1252f4bc.tar.bz2
Skyblocker-0f0f322d85c6b5ec40bdf3e569db67bf1252f4bc.zip
Fix merge conflicts
Diffstat (limited to 'src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java')
-rw-r--r--src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java104
1 files changed, 89 insertions, 15 deletions
diff --git a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java
index f804d90e..4688d90f 100644
--- a/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java
+++ b/src/main/java/me/xmrvizzy/skyblocker/SkyblockerMod.java
@@ -1,35 +1,109 @@
package me.xmrvizzy.skyblocker;
-import me.xmrvizzy.skyblocker.container.ContainerSolverManager;
+import com.google.gson.Gson;
+import com.google.gson.GsonBuilder;
+import me.xmrvizzy.skyblocker.chat.ChatMessageListener;
+import me.xmrvizzy.skyblocker.config.SkyblockerConfig;
import me.xmrvizzy.skyblocker.discord.DiscordRPCManager;
-import me.xmrvizzy.skyblocker.skyblock.BackpackPreview;
-import me.xmrvizzy.skyblocker.skyblock.StatusBarTracker;
+import me.xmrvizzy.skyblocker.gui.ContainerSolverManager;
+import me.xmrvizzy.skyblocker.skyblock.*;
+import me.xmrvizzy.skyblocker.skyblock.api.StatsCommand;
import me.xmrvizzy.skyblocker.skyblock.dungeon.DungeonBlaze;
+import me.xmrvizzy.skyblocker.skyblock.dungeon.DungeonMap;
+import me.xmrvizzy.skyblocker.skyblock.dungeon.LividColor;
import me.xmrvizzy.skyblocker.skyblock.dwarven.DwarvenHud;
-import me.xmrvizzy.skyblocker.utils.Scheduler;
-import me.xmrvizzy.skyblocker.utils.Utils;
+import me.xmrvizzy.skyblocker.skyblock.item.PriceInfoTooltip;
+import me.xmrvizzy.skyblocker.skyblock.item.WikiLookup;
+import me.xmrvizzy.skyblocker.skyblock.itemlist.ItemRegistry;
+import me.xmrvizzy.skyblocker.skyblock.quicknav.QuickNav;
+import me.xmrvizzy.skyblocker.skyblock.rift.TheRift;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.TabHud;
+import me.xmrvizzy.skyblocker.skyblock.tabhud.util.PlayerListMgr;
+import me.xmrvizzy.skyblocker.utils.*;
+import me.xmrvizzy.skyblocker.utils.title.TitleContainer;
+import net.fabricmc.api.ClientModInitializer;
+import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
+import net.fabricmc.loader.api.FabricLoader;
+import net.minecraft.client.MinecraftClient;
-public class SkyblockerMod {
+import java.nio.file.Path;
+
+/**
+ * Main class for Skyblocker which initializes features, registers events, and
+ * manages ticks. This class will be instantiated by Fabric. Do not instantiate
+ * this class.
+ */
+public class SkyblockerMod implements ClientModInitializer {
public static final String NAMESPACE = "skyblocker";
- private static final SkyblockerMod instance = new SkyblockerMod();
+ public static final Path CONFIG_DIR = FabricLoader.getInstance().getConfigDir().resolve(NAMESPACE);
+ public static final Gson GSON = new GsonBuilder().setPrettyPrinting().create();
+ private static SkyblockerMod INSTANCE;
+ @SuppressWarnings("deprecation")
public final Scheduler scheduler = new Scheduler();
+ public final MessageScheduler messageScheduler = new MessageScheduler();
public final ContainerSolverManager containerSolverManager = new ContainerSolverManager();
public final StatusBarTracker statusBarTracker = new StatusBarTracker();
- private SkyblockerMod() {
- scheduler.scheduleCyclic(Utils::sbChecker, 20);
- scheduler.scheduleCyclic(DiscordRPCManager::update, 100);
- scheduler.scheduleCyclic(DungeonBlaze::update, 4);
- scheduler.scheduleCyclic(BackpackPreview::tick, 50);
- scheduler.scheduleCyclic(DwarvenHud::update, 40);
+ /**
+ * Do not instantiate this class. Use {@link #getInstance()} instead.
+ */
+ @Deprecated
+ public SkyblockerMod() {
+ INSTANCE = this;
}
public static SkyblockerMod getInstance() {
- return instance;
+ return INSTANCE;
+ }
+
+ /**
+ * Register {@link #tick(MinecraftClient)} to
+ * {@link ClientTickEvents#END_CLIENT_TICK}, initialize all features, and
+ * schedule tick events.
+ */
+ @Override
+ public void onInitializeClient() {
+ ClientTickEvents.END_CLIENT_TICK.register(this::tick);
+ Utils.init();
+ HotbarSlotLock.init();
+ SkyblockerConfig.init();
+ PriceInfoTooltip.init();
+ WikiLookup.init();
+ ItemRegistry.init();
+ NEURepo.init();
+ BackpackPreview.init();
+ QuickNav.init();
+ StatsCommand.init();
+ DwarvenHud.init();
+ ChatMessageListener.init();
+ UpdateChecker.init();
+ DiscordRPCManager.init();
+ LividColor.init();
+ FishingHelper.init();
+ FairySouls.init();
+ TabHud.init();
+ DungeonMap.init();
+ TheRift.init();
+ TitleContainer.init();
+ containerSolverManager.init();
+ scheduler.scheduleCyclic(Utils::update, 20);
+ scheduler.scheduleCyclic(DiscordRPCManager::updateDataAndPresence, 100);
+ scheduler.scheduleCyclic(DungeonBlaze::update, 4);
+ scheduler.scheduleCyclic(LividColor::update, 10);
+ scheduler.scheduleCyclic(BackpackPreview::tick, 50);
+ scheduler.scheduleCyclic(DwarvenHud::update, 40);
+ scheduler.scheduleCyclic(PlayerListMgr::updateList, 20);
}
- public void onTick() {
+ /**
+ * Ticks the scheduler. Called once at the end of every client tick through
+ * {@link ClientTickEvents#END_CLIENT_TICK}.
+ *
+ * @param client the Minecraft client.
+ */
+ public void tick(MinecraftClient client) {
scheduler.tick();
+ messageScheduler.tick();
}
}