diff options
| author | Lorenz <ESs95s3P5z8Pheb> | 2022-07-14 12:06:07 +0200 |
|---|---|---|
| committer | Lorenz <ESs95s3P5z8Pheb> | 2022-07-14 12:06:07 +0200 |
| commit | a5c540d977a3510812cac7fac340fe17e7d10983 (patch) | |
| tree | dbbe5b208e6871378a10868d1206d1d78beeb950 /src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java | |
| parent | d6c99ed30a2b1cb228b2fdc3d3178cf1f369dc53 (diff) | |
| download | SkyHanni-a5c540d977a3510812cac7fac340fe17e7d10983.tar.gz SkyHanni-a5c540d977a3510812cac7fac340fe17e7d10983.tar.bz2 SkyHanni-a5c540d977a3510812cac7fac340fe17e7d10983.zip | |
renamed mod to SkyHanni
Diffstat (limited to 'src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java')
| -rw-r--r-- | src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java new file mode 100644 index 000000000..09355383c --- /dev/null +++ b/src/main/java/at/hannibal2/skyhanni/SkyHanniMod.java @@ -0,0 +1,119 @@ +package at.hannibal2.skyhanni; + +import at.hannibal2.skyhanni.bazaar.BazaarApi; +import at.hannibal2.skyhanni.bazaar.BazaarOrderHelper; +import at.hannibal2.skyhanni.chat.ChatFilter; +import at.hannibal2.skyhanni.chat.ChatManager; +import at.hannibal2.skyhanni.chat.PlayerChatFilter; +import at.hannibal2.skyhanni.config.Features; +import at.hannibal2.skyhanni.config.commands.Commands; +import at.hannibal2.skyhanni.dungeon.*; +import at.hannibal2.skyhanni.dungeon.damageindicator.DungeonBossDamageIndicator; +import at.hannibal2.skyhanni.items.HideNotClickableItems; +import at.hannibal2.skyhanni.items.ItemDisplayOverlayFeatures; +import at.hannibal2.skyhanni.items.abilitycooldown.ItemAbilityCooldown; +import at.hannibal2.skyhanni.misc.*; +import at.hannibal2.skyhanni.test.LorenzTest; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; +import java.io.*; +import java.nio.charset.StandardCharsets; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiScreen; +import net.minecraftforge.common.MinecraftForge; +import net.minecraftforge.fml.common.Mod; +import net.minecraftforge.fml.common.Mod.EventHandler; +import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; +import net.minecraftforge.fml.common.eventhandler.SubscribeEvent; +import net.minecraftforge.fml.common.gameevent.TickEvent; + +@Mod(modid = SkyHanniMod.MODID, version = SkyHanniMod.VERSION) +public class SkyHanniMod { + + public static final String MODID = "skyhanni"; + public static final String VERSION = "0."; + + public static Features feature; + private File configFile; + + private final Gson gson = new GsonBuilder().setPrettyPrinting().excludeFieldsWithoutExposeAnnotation().create(); + + public static File configDirectory; + + @EventHandler + public void preInit(FMLPreInitializationEvent event) { + new BazaarApi(); + MinecraftForge.EVENT_BUS.register(this); + MinecraftForge.EVENT_BUS.register(new ChatManager()); + MinecraftForge.EVENT_BUS.register(new HypixelData()); + MinecraftForge.EVENT_BUS.register(new DungeonData()); + MinecraftForge.EVENT_BUS.register(new ScoreboardData()); + + MinecraftForge.EVENT_BUS.register(new BazaarOrderHelper()); + MinecraftForge.EVENT_BUS.register(new ChatFilter()); + MinecraftForge.EVENT_BUS.register(new PlayerChatFilter()); + MinecraftForge.EVENT_BUS.register(new DungeonChatFilter()); + MinecraftForge.EVENT_BUS.register(new HideNotClickableItems()); + MinecraftForge.EVENT_BUS.register(new DungeonHighlightClickedBlocks()); + MinecraftForge.EVENT_BUS.register(new ItemDisplayOverlayFeatures()); + MinecraftForge.EVENT_BUS.register(new CurrentPetDisplay()); + MinecraftForge.EVENT_BUS.register(new ExpBottleOnGroundHider()); + MinecraftForge.EVENT_BUS.register(new DungeonBossDamageIndicator()); + MinecraftForge.EVENT_BUS.register(new ItemAbilityCooldown()); + MinecraftForge.EVENT_BUS.register(new DungeonMilestoneDisplay()); + MinecraftForge.EVENT_BUS.register(new DungeonDeathCounter()); + MinecraftForge.EVENT_BUS.register(new DungeonCleanEnd()); + MinecraftForge.EVENT_BUS.register(new DungeonBossMessages()); + + Commands.init(); + + MinecraftForge.EVENT_BUS.register(new LorenzTest()); + MinecraftForge.EVENT_BUS.register(new ButtonOnPause()); + + configDirectory = new File("mods/SkyHanni/config"); + try { + //noinspection ResultOfMethodCallIgnored + configDirectory.mkdir(); + } catch (Exception ignored) {} + + configFile = new File(configDirectory, "config.json"); + + if (configFile.exists()) { + try (BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(configFile), StandardCharsets.UTF_8))) { + feature = gson.fromJson(reader, Features.class); + } catch (Exception ignored) {} + } + + if (feature == null) { + feature = new Features(); + saveConfig(); + } + Runtime.getRuntime().addShutdownHook(new Thread(this::saveConfig)); + } + + public void saveConfig() { + try { + //noinspection ResultOfMethodCallIgnored + configFile.createNewFile(); + + try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(configFile), StandardCharsets.UTF_8))) { + writer.write(gson.toJson(feature)); + } + } catch (IOException ignored) {} + } + + public static GuiScreen screenToOpen = null; + private static int screenTicks = 0; + + @SubscribeEvent + public void onClientTick(TickEvent.ClientTickEvent event) { + if (screenToOpen != null) { + screenTicks++; + if (screenTicks == 5) { + Minecraft.getMinecraft().displayGuiScreen(screenToOpen); + screenTicks = 0; + screenToOpen = null; + } + } + } +} |
