Delete src/main/java/net/viper/status/module/ModuleManager.java via Git Manager GUI
This commit is contained in:
@@ -1,67 +0,0 @@
|
|||||||
package net.viper.status.module;
|
|
||||||
|
|
||||||
import net.md_5.bungee.api.plugin.Plugin;
|
|
||||||
|
|
||||||
import java.util.LinkedHashMap;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Verwaltet alle geladenen Module.
|
|
||||||
* Verwendet LinkedHashMap um die Registrierungsreihenfolge zu erhalten,
|
|
||||||
* damit Abhängigkeiten (z.B. VanishModule → ChatModule) korrekt aufgelöst werden.
|
|
||||||
*/
|
|
||||||
public class ModuleManager {
|
|
||||||
|
|
||||||
private final Map<String, Module> modules = new LinkedHashMap<>();
|
|
||||||
|
|
||||||
public void registerModule(Module module) {
|
|
||||||
modules.put(module.getName().toLowerCase(), module);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void enableAll(Plugin plugin) {
|
|
||||||
for (Module module : modules.values()) {
|
|
||||||
try {
|
|
||||||
module.onEnable(plugin);
|
|
||||||
} catch (Exception e) {
|
|
||||||
plugin.getLogger().severe("Fehler beim Aktivieren von Modul " + module.getName() + ": " + e.getMessage());
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void disableAll(Plugin plugin) {
|
|
||||||
for (Module module : modules.values()) {
|
|
||||||
try {
|
|
||||||
module.onDisable(plugin);
|
|
||||||
} catch (Exception e) {
|
|
||||||
plugin.getLogger().warning("Fehler beim Deaktivieren von Modul " + module.getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
modules.clear();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Ermöglicht anderen Komponenten (wie dem WebServer) Zugriff auf spezifische Module.
|
|
||||||
*/
|
|
||||||
public Module getModule(String name) {
|
|
||||||
return modules.get(name.toLowerCase());
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Ersetzt ein bestehendes Modul durch eine neue Instanz (für Reload).
|
|
||||||
* Das alte Modul muss bereits deaktiviert worden sein.
|
|
||||||
*/
|
|
||||||
public void replaceModule(String name, Module newModule) {
|
|
||||||
modules.put(name.toLowerCase(), newModule);
|
|
||||||
}
|
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
|
||||||
public <T extends Module> T getModule(Class<T> clazz) {
|
|
||||||
for (Module m : modules.values()) {
|
|
||||||
if (clazz.isInstance(m)) {
|
|
||||||
return (T) m;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user