/
minecraftbackup
/
AnarchyExploitFixes
Обзор
Документация
Войти
/
minecraftbackup
/
AnarchyExploitFixes
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
AnarchyExploitFixesLegacy/src/main/java/me/xginko/aef/modules/AEFModule.java
81 строка
3 KB
Ginko
2.7.2 release (#233)
13 авг 2024, 08:21
Не верифицирован
13 авг 2024, 08:21
d20da6e
Код
Авторство
О чём код?
package me.xginko.aef.modules; import me.xginko.aef.AnarchyExploitFixes; import me.xginko.aef.config.Config; import me.xginko.aef.modules.packets.PacketModule; import me.xginko.aef.utils.models.ConditionalEnableable; import me.xginko.aef.utils.models.Disableable; import org.reflections.Reflections; import org.reflections.scanners.Scanners; import java.lang.reflect.Modifier; import java.util.HashSet; import java.util.Set; public abstract class AEFModule implements ConditionalEnableable, Disableable { private static final Reflections MODULES_PACKAGE = new Reflections(AEFModule.class.getPackage().getName()); public static final Set<AEFModule> ENABLED_MODULES = new HashSet<>(); protected final AnarchyExploitFixes plugin; protected final Config config; public final String configPath; private final String logFormat; public AEFModule(String configPath) { this.plugin = AnarchyExploitFixes.getInstance(); this.config = AnarchyExploitFixes.config(); this.configPath = configPath; shouldEnable(); // Ensure enable option is always first String[] paths = configPath.split("\\."); if (paths.length <= 2) { this.logFormat = "<" + configPath + "> {}"; } else { this.logFormat = "<" + paths[paths.length - 2] + "." + paths[paths.length - 1] + "> {}"; } } public static void reloadModules() { ENABLED_MODULES.forEach(AEFModule::disable); ENABLED_MODULES.clear(); for (Class<?> clazz : MODULES_PACKAGE.get(Scanners.SubTypes.of(AEFModule.class).asClass())) { if (clazz.isInterface() || Modifier.isAbstract(clazz.getModifiers())) continue; try { AEFModule module = (AEFModule) clazz.getDeclaredConstructor().newInstance(); if (module.shouldEnable()) { if (module instanceof PacketModule && AnarchyExploitFixes.config().packets_disabled) { module.warn("Cannot enable because you disabled packets in config!"); continue; } module.enable(); ENABLED_MODULES.add(module); } } catch (Throwable t) { AnarchyExploitFixes.prefixedLogger().error("Failed to load module {}", clazz.getSimpleName(), t); } } } protected void error(String message, Throwable throwable) { AnarchyExploitFixes.prefixedLogger().error(logFormat, message, throwable); } protected void error(String message) { AnarchyExploitFixes.prefixedLogger().error(logFormat, message); } protected void warn(String message) { AnarchyExploitFixes.prefixedLogger().warn(logFormat, message); } protected void info(String message) { AnarchyExploitFixes.prefixedLogger().info(logFormat, message); } protected void notRecognized(Class<?> clazz, String unrecognized) { warn("Unable to parse " + clazz.getSimpleName() + " at '" + unrecognized + "'. Please check your configuration."); } }