aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/dev/isxander/yacl/config/YACLConfigManager.java
diff options
context:
space:
mode:
authorisXander <xandersmith2008@gmail.com>2022-11-12 11:05:16 +0000
committerisXander <xandersmith2008@gmail.com>2022-11-12 11:05:16 +0000
commit558b120e2d4924a84860c3f84415ab573040a293 (patch)
treed1a6cf8508d2aadf5b1a22f663c3d4fb7867fdd2 /src/main/java/dev/isxander/yacl/config/YACLConfigManager.java
parentfe404957974b127363e95aa27c4745afc91760aa (diff)
downloadYetAnotherConfigLib-558b120e2d4924a84860c3f84415ab573040a293.tar.gz
YetAnotherConfigLib-558b120e2d4924a84860c3f84415ab573040a293.tar.bz2
YetAnotherConfigLib-558b120e2d4924a84860c3f84415ab573040a293.zip
REAL config library
Diffstat (limited to 'src/main/java/dev/isxander/yacl/config/YACLConfigManager.java')
-rw-r--r--src/main/java/dev/isxander/yacl/config/YACLConfigManager.java26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/main/java/dev/isxander/yacl/config/YACLConfigManager.java b/src/main/java/dev/isxander/yacl/config/YACLConfigManager.java
new file mode 100644
index 0000000..d91f3f6
--- /dev/null
+++ b/src/main/java/dev/isxander/yacl/config/YACLConfigManager.java
@@ -0,0 +1,26 @@
+package dev.isxander.yacl.config;
+
+import java.util.HashMap;
+import java.util.Map;
+
+@SuppressWarnings("unchecked")
+public class YACLConfigManager {
+ private static final Map<Class<?>, ConfigInstance<?>> configs = new HashMap<>();
+
+ public static <T> void register(ConfigInstance<T> configInstance) {
+ configs.put(configInstance.getConfigClass(), configInstance);
+ configInstance.load();
+ }
+
+ public static <T> T getConfigData(Class<T> configClass) {
+ return ((ConfigInstance<T>) configs.get(configClass)).getConfig();
+ }
+
+ public static <T> ConfigInstance<T> getConfigInstance(Class<T> configClass) {
+ return (ConfigInstance<T>) configs.get(configClass);
+ }
+
+ public static <T, I extends ConfigInstance<T>> I getConfigInstanceType(Class<T> configClass) {
+ return (I) configs.get(configClass);
+ }
+}