aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/cc/polyfrost/oneconfig
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/cc/polyfrost/oneconfig')
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/config/Config.java17
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/internal/config/compatibility/forge/ForgeCompat.java7
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/internal/config/compatibility/vigilance/VigilanceConfig.java5
-rw-r--r--src/main/java/cc/polyfrost/oneconfig/internal/config/core/ConfigCore.java4
4 files changed, 25 insertions, 8 deletions
diff --git a/src/main/java/cc/polyfrost/oneconfig/config/Config.java b/src/main/java/cc/polyfrost/oneconfig/config/Config.java
index 0f74b31..7c3b7ed 100644
--- a/src/main/java/cc/polyfrost/oneconfig/config/Config.java
+++ b/src/main/java/cc/polyfrost/oneconfig/config/Config.java
@@ -68,7 +68,6 @@ public class Config {
transient protected final Gson nonProfileSpecificGson = new GsonBuilder().setExclusionStrategies(new NonProfileSpecificExclusionStrategy()).excludeFieldsWithModifiers(Modifier.TRANSIENT).setPrettyPrinting().create();
transient protected final HashMap<Field, Object> defaults = new HashMap<>();
transient public Mod mod;
- public transient boolean hasBeenInitialized = false;
public boolean enabled;
/**
@@ -93,14 +92,17 @@ public class Config {
public void initialize() {
boolean migrate = false;
if (Profiles.getProfileFile(configFile).exists()) load();
- else if (!hasBeenInitialized && mod.migrator != null) migrate = true;
+ else if (mod.migrator != null) migrate = true;
else save();
- if (hasBeenInitialized) return;
mod.config = this;
generateOptionList(this, mod.defaultPage, mod, migrate);
if (migrate) save();
ConfigCore.mods.add(mod);
- hasBeenInitialized = true;
+ }
+
+ public void reInitialize() {
+ if (Profiles.getProfileFile(configFile).exists()) load();
+ else save();
}
/**
@@ -382,4 +384,11 @@ public class Config {
option.reset(this);
}
}
+
+ /**
+ * @return If this mod supports profiles, false for compatibility mode
+ */
+ public boolean supportsProfiles() {
+ return true;
+ }
}
diff --git a/src/main/java/cc/polyfrost/oneconfig/internal/config/compatibility/forge/ForgeCompat.java b/src/main/java/cc/polyfrost/oneconfig/internal/config/compatibility/forge/ForgeCompat.java
index afa5436..238355e 100644
--- a/src/main/java/cc/polyfrost/oneconfig/internal/config/compatibility/forge/ForgeCompat.java
+++ b/src/main/java/cc/polyfrost/oneconfig/internal/config/compatibility/forge/ForgeCompat.java
@@ -19,17 +19,14 @@ public class ForgeCompat {
config = new Config(this, "") {
@Override
public void initialize() {
-
}
@Override
public void save() {
-
}
@Override
public void load() {
-
}
@Override
@@ -44,7 +41,11 @@ public class ForgeCompat {
@Override
public void reset() {
+ }
+ @Override
+ public boolean supportsProfiles() {
+ return false;
}
};
}
diff --git a/src/main/java/cc/polyfrost/oneconfig/internal/config/compatibility/vigilance/VigilanceConfig.java b/src/main/java/cc/polyfrost/oneconfig/internal/config/compatibility/vigilance/VigilanceConfig.java
index 654001e..66375cc 100644
--- a/src/main/java/cc/polyfrost/oneconfig/internal/config/compatibility/vigilance/VigilanceConfig.java
+++ b/src/main/java/cc/polyfrost/oneconfig/internal/config/compatibility/vigilance/VigilanceConfig.java
@@ -217,4 +217,9 @@ public class VigilanceConfig extends Config {
}
}
}
+
+ @Override
+ public boolean supportsProfiles() {
+ return false;
+ }
}
diff --git a/src/main/java/cc/polyfrost/oneconfig/internal/config/core/ConfigCore.java b/src/main/java/cc/polyfrost/oneconfig/internal/config/core/ConfigCore.java
index ae58760..7925063 100644
--- a/src/main/java/cc/polyfrost/oneconfig/internal/config/core/ConfigCore.java
+++ b/src/main/java/cc/polyfrost/oneconfig/internal/config/core/ConfigCore.java
@@ -46,6 +46,7 @@ public class ConfigCore {
}
}, 30000, 30000);
}
+
public static List<Mod> mods = new ArrayList<>();
public static void saveAll() {
@@ -56,7 +57,8 @@ public class ConfigCore {
public static void reInitAll() {
for (Mod modData : mods) {
- modData.config.initialize();
+ if (!modData.config.supportsProfiles()) continue;
+ modData.config.reInitialize();
}
HudCore.reInitHuds();
KeyBindHandler.INSTANCE.reInitKeyBinds();