From 31ba59f7a85cca512ac106561e8663aab9c30d54 Mon Sep 17 00:00:00 2001 From: noil Date: Mon, 5 Dec 2022 17:30:58 -0500 Subject: [PATCH] 3.2.0 update, fixes multi-config system --- build.gradle | 2 +- .../java/me/rigamortis/seppuku/Seppuku.java | 6 ++-- .../seppuku/impl/fml/SeppukuMod.java | 8 ++--- .../impl/management/ConfigManager.java | 30 +++++++++++++++++-- 4 files changed, 36 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index 689acff..25fc3e9 100644 --- a/build.gradle +++ b/build.gradle @@ -18,7 +18,7 @@ apply plugin: 'net.minecraftforge.gradle.forge' apply plugin: "com.github.johnrengelman.shadow" -version = "3.1.8" +version = "3.2.0" group = "me.rigamortis" archivesBaseName = "seppuku" def buildmode = "IDE" diff --git a/src/main/java/me/rigamortis/seppuku/Seppuku.java b/src/main/java/me/rigamortis/seppuku/Seppuku.java index 7dc8554..cf66bb5 100644 --- a/src/main/java/me/rigamortis/seppuku/Seppuku.java +++ b/src/main/java/me/rigamortis/seppuku/Seppuku.java @@ -86,7 +86,7 @@ public final class Seppuku { public void init() { this.eventManager = new AnnotatedEventManager(); this.apiManager = new APIManager(); - this.configManager = new ConfigManager("Default"); + this.configManager = new ConfigManager(); this.ignoredManager = new IgnoredManager(); this.friendManager = new FriendManager(); this.rotationManager = new RotationManager(); @@ -203,7 +203,7 @@ public final class Seppuku { this.capeManager = new CapeManager(); this.configManager.getConfigurableList().clear(); - this.configManager = new ConfigManager(this.configManager.activeConfig); + this.configManager = new ConfigManager(); this.configManager.init(); this.getEventManager().dispatchEvent(new EventReload()); @@ -266,7 +266,7 @@ public final class Seppuku { public ConfigManager getConfigManager() { if (this.configManager == null) { - this.configManager = new ConfigManager("Default"); + this.configManager = new ConfigManager(); } return this.configManager; } diff --git a/src/main/java/me/rigamortis/seppuku/impl/fml/SeppukuMod.java b/src/main/java/me/rigamortis/seppuku/impl/fml/SeppukuMod.java index 4f049f2..de2eeac 100644 --- a/src/main/java/me/rigamortis/seppuku/impl/fml/SeppukuMod.java +++ b/src/main/java/me/rigamortis/seppuku/impl/fml/SeppukuMod.java @@ -5,14 +5,14 @@ import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.event.FMLInitializationEvent; /** - * @author Seth + * @author Seth/riga * @author noil - * @author the entire github & discordcommunity + * @author GitHub's contributors & our Discord plugin developers */ -@Mod(modid = "seppukumod", name = "Seppuku", version = SeppukuMod.VERSION, certificateFingerprint = "7979b1d0446af2675fcb5e888851a7f32637fdb9") +@Mod(modid = "seppukumod", name = "Seppuku", version = SeppukuMod.VERSION) public final class SeppukuMod { - public static final String VERSION = "3.1.8"; + public static final String VERSION = "3.2.0"; /** * Our mods entry point diff --git a/src/main/java/me/rigamortis/seppuku/impl/management/ConfigManager.java b/src/main/java/me/rigamortis/seppuku/impl/management/ConfigManager.java index 704e97c..f240fa4 100644 --- a/src/main/java/me/rigamortis/seppuku/impl/management/ConfigManager.java +++ b/src/main/java/me/rigamortis/seppuku/impl/management/ConfigManager.java @@ -7,6 +7,11 @@ import me.rigamortis.seppuku.api.event.client.EventSaveConfig; import me.rigamortis.seppuku.impl.config.*; import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; @@ -24,8 +29,8 @@ public final class ConfigManager { private boolean customMainMenuHidden = false; private List configurableList = new ArrayList<>(); - public ConfigManager(final String config) { - this.activeConfig = config; + public ConfigManager() { + this.activeConfig = readActiveConfig(); this.generateDirectories(); } @@ -33,10 +38,31 @@ public final class ConfigManager { this.saveAll(); this.activeConfig = config; + this.writeActiveConfig(config); + Seppuku.INSTANCE.unloadSimple(); Seppuku.INSTANCE.init(); } + public String readActiveConfig() { + try { + final byte[] bytes = Files.readAllBytes(Paths.get("Seppuku/Config/active.txt")); + return new String(bytes, StandardCharsets.UTF_8); + } catch (IOException e) { + return "Default"; + } + } + + public void writeActiveConfig(final String config) { + try { + final FileOutputStream fos = new FileOutputStream("Seppuku/Config/active.txt"); + fos.write(config.getBytes()); + fos.close(); + } catch (IOException e) { + System.err.println("Could not create file active.txt in config directory."); + } + } + private void generateDirectories() { this.configDir = new File(String.format(CONFIG_PATH, activeConfig)); if (!this.configDir.exists()) {