diff options
author | msg-programs <msgdoesstuff@gmail.com> | 2023-10-10 19:15:52 +0200 |
---|---|---|
committer | msg-programs <msgdoesstuff@gmail.com> | 2023-10-10 19:15:52 +0200 |
commit | c1cc4ea51f84281336e6ca23bdd01e281d5fb4a3 (patch) | |
tree | 7082b35b68a915a18d1e1df171fae700bacd77e0 /src/main/java/de/hysky/skyblocker/SkyblockerMod.java | |
parent | 87983958dcebd98f73c6971a5ea82c80871a12af (diff) | |
parent | a373db64a319c263b2b4c1d07084fa18bd12353b (diff) | |
download | Skyblocker-c1cc4ea51f84281336e6ca23bdd01e281d5fb4a3.tar.gz Skyblocker-c1cc4ea51f84281336e6ca23bdd01e281d5fb4a3.tar.bz2 Skyblocker-c1cc4ea51f84281336e6ca23bdd01e281d5fb4a3.zip |
Merge branch 'master' of https://github.com/SkyblockerMod/Skyblocker into beeper-creams
# Conflicts:
# src/main/java/de/hysky/skyblocker/SkyblockerMod.java
# src/main/java/de/hysky/skyblocker/skyblock/dungeon/CreeperBeams.java
Pull updates from upstream and NOT get a heart attack
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/SkyblockerMod.java')
-rw-r--r-- | src/main/java/de/hysky/skyblocker/SkyblockerMod.java | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/src/main/java/de/hysky/skyblocker/SkyblockerMod.java b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java new file mode 100644 index 00000000..bd1cd5bd --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/SkyblockerMod.java @@ -0,0 +1,128 @@ +package de.hysky.skyblocker; + +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import de.hysky.skyblocker.skyblock.*; +import de.hysky.skyblocker.skyblock.dungeon.*; +import de.hysky.skyblocker.skyblock.dungeon.secrets.DungeonSecrets; +import de.hysky.skyblocker.skyblock.item.*; +import de.hysky.skyblocker.skyblock.tabhud.screenbuilder.ScreenMaster; +import de.hysky.skyblocker.config.SkyblockerConfigManager; +import de.hysky.skyblocker.skyblock.dwarven.DwarvenHud; +import de.hysky.skyblocker.skyblock.itemlist.ItemRegistry; +import de.hysky.skyblocker.skyblock.quicknav.QuickNav; +import de.hysky.skyblocker.skyblock.rift.TheRift; +import de.hysky.skyblocker.skyblock.shortcut.Shortcuts; +import de.hysky.skyblocker.skyblock.special.SpecialEffects; +import de.hysky.skyblocker.skyblock.spidersden.Relics; +import de.hysky.skyblocker.skyblock.tabhud.TabHud; +import de.hysky.skyblocker.skyblock.tabhud.util.PlayerListMgr; +import de.hysky.skyblocker.utils.NEURepo; +import de.hysky.skyblocker.utils.Utils; +import de.hysky.skyblocker.utils.chat.ChatMessageListener; +import de.hysky.skyblocker.utils.discord.DiscordRPCManager; +import de.hysky.skyblocker.utils.render.culling.OcclusionCulling; +import de.hysky.skyblocker.utils.render.gui.ContainerSolverManager; +import de.hysky.skyblocker.utils.render.title.TitleContainer; +import de.hysky.skyblocker.utils.scheduler.MessageScheduler; +import de.hysky.skyblocker.utils.scheduler.Scheduler; +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; + +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 VERSION = FabricLoader.getInstance().getModContainer("skyblocker").get().getMetadata().getVersion().getFriendlyString(); + public static final String NAMESPACE = "skyblocker"; + public static final Path CONFIG_DIR = FabricLoader.getInstance().getConfigDir().resolve(NAMESPACE); + public static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); + private static SkyblockerMod INSTANCE; + public final ContainerSolverManager containerSolverManager = new ContainerSolverManager(); + public final StatusBarTracker statusBarTracker = new StatusBarTracker(); + + /** + * Do not instantiate this class. Use {@link #getInstance()} instead. + */ + @Deprecated + public SkyblockerMod() { + INSTANCE = this; + } + + public static SkyblockerMod getInstance() { + 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(); + SkyblockerConfigManager.init(); + PriceInfoTooltip.init(); + WikiLookup.init(); + ItemRegistry.init(); + NEURepo.init(); + FairySouls.init(); + Relics.init(); + BackpackPreview.init(); + QuickNav.init(); + ItemCooldowns.init(); + DwarvenHud.init(); + ChatMessageListener.init(); + Shortcuts.init(); + DiscordRPCManager.init(); + LividColor.init(); + FishingHelper.init(); + TabHud.init(); + DungeonMap.init(); + DungeonSecrets.init(); + DungeonBlaze.init(); + DungeonChestProfit.init(); + TheRift.init(); + TitleContainer.init(); + ScreenMaster.init(); + OcclusionCulling.init(); + TeleportOverlay.init(); + CustomItemNames.init(); + CustomArmorDyeColors.init(); + CustomArmorTrims.init(); + TicTacToe.init(); + QuiverWarning.init(); + SpecialEffects.init(); + ItemProtection.init(); + CreeperBeams.init(); + ItemRarityBackgrounds.init(); + containerSolverManager.init(); + statusBarTracker.init(); + Scheduler.INSTANCE.scheduleCyclic(Utils::update, 20); + Scheduler.INSTANCE.scheduleCyclic(DiscordRPCManager::updateDataAndPresence, 100); + Scheduler.INSTANCE.scheduleCyclic(TicTacToe::tick, 4); + Scheduler.INSTANCE.scheduleCyclic(LividColor::update, 10); + Scheduler.INSTANCE.scheduleCyclic(BackpackPreview::tick, 50); + Scheduler.INSTANCE.scheduleCyclic(DwarvenHud::update, 40); + Scheduler.INSTANCE.scheduleCyclic(PlayerListMgr::updateList, 20); + } + + /** + * 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.INSTANCE.tick(); + MessageScheduler.INSTANCE.tick(); + } +} |