AsmClassTransformer

This commit is contained in:
Izzel_Aliz
2018-04-29 15:44:01 +08:00
parent 250d168c2e
commit da8890b30a
12 changed files with 285 additions and 92 deletions

View File

@@ -66,6 +66,21 @@ public class TConfigInjector {
return null;
}
public static void reloadConfig(Plugin plugin, Object object) {
try {
Config config = object.getClass().getAnnotation(Config.class);
Validate.notNull(config);
File file = new File(plugin.getDataFolder(), config.name());
Map<String, Object> map = ConfigUtils.confToMap(ConfigUtils.loadYaml(plugin, file));
Object obj = ConfigUtils.mapToObj(map, object);
if (!config.readOnly()) saveConfig(plugin, obj);
} catch (NullPointerException e) {
TLocale.Logger.warn("CONFIG.LOAD-FAIL-NO-ANNOTATION", plugin.toString(), object.getClass().getSimpleName());
} catch (Exception e) {
TLocale.Logger.warn("CONFIG.LOAD-FAIL", plugin.toString(), object.getClass().getSimpleName());
}
}
public static Object unserialize(Plugin plugin, Class<?> clazz) {
try {
Config config = clazz.getAnnotation(Config.class);

View File

@@ -72,11 +72,7 @@ public class TDependencyInjector {
obj,
object -> {
try {
Object newObj = TConfigInjector.loadConfig(plugin, object.getClass());
for (Field f : newObj.getClass().getDeclaredFields()) {
f.setAccessible(true);
f.set(obj, f.get(newObj));
}
TConfigInjector.reloadConfig(plugin, object);
TLocale.Logger.info("CONFIG.RELOAD-SUCCESS", plugin.toString(), config.name());
} catch (Exception ignored) {
TLocale.Logger.warn("CONFIG.RELOAD-FAIL", plugin.toString(), config.name());