diff options
| author | isXander <xandersmith2008@gmail.com> | 2022-11-12 11:05:16 +0000 |
|---|---|---|
| committer | isXander <xandersmith2008@gmail.com> | 2022-11-12 11:05:16 +0000 |
| commit | 558b120e2d4924a84860c3f84415ab573040a293 (patch) | |
| tree | d1a6cf8508d2aadf5b1a22f663c3d4fb7867fdd2 /src/main/java/dev/isxander/yacl/config/YACLConfigManager.java | |
| parent | fe404957974b127363e95aa27c4745afc91760aa (diff) | |
| download | YetAnotherConfigLib-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.java | 26 |
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); + } +} |
