Use reflection to load feature event listeners
This commit is contained in:
parent
fa289a8737
commit
99dcb318ad
|
|
@ -104,12 +104,21 @@ public class EssentiaPlugin extends JavaPlugin implements EssentiaAPI {
|
|||
|
||||
void loadEventListeners() {
|
||||
final PluginManager pluginManager = getServer().getPluginManager();
|
||||
Reflections reflections = new Reflections("com.alttd.essentia.listeners");
|
||||
Reflections reflections = new Reflections("com.alttd.essentia.listeners"); // These are plugin required listeners eg player data loading on login.
|
||||
Set<Class<?>> subTypes = reflections.get(Scanners.SubTypes.of(Listener.class).asClass());
|
||||
reflections = new Reflections("com.alttd.essentia.feature"); // These are them listeners for the features.
|
||||
subTypes.addAll(reflections.get(Scanners.SubTypes.of(Listener.class).asClass()));
|
||||
|
||||
subTypes.forEach(clazz -> {
|
||||
try {
|
||||
Listener listener = (Listener) clazz.getDeclaredConstructor().newInstance();
|
||||
final Depends depends = clazz.getAnnotation(Depends.class);
|
||||
if (depends != null) {
|
||||
if (!features.isEnabled(depends.value())) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
pluginManager.registerEvents(listener, this);
|
||||
} catch (Exception e) {
|
||||
EssentiaPlugin.instance().getLogger().severe("Failed to register event listener " + clazz.getSimpleName());
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package com.alttd.essentia.feature.cuff;
|
|||
|
||||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.feature.EssentiaFeature;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
|
||||
public class CuffFeature implements EssentiaFeature {
|
||||
|
||||
|
|
@ -21,9 +20,6 @@ public class CuffFeature implements EssentiaFeature {
|
|||
|
||||
@Override
|
||||
public void register() {
|
||||
final PluginManager pluginManager = plugin.getServer().getPluginManager();
|
||||
pluginManager.registerEvents(new CuffListener(), plugin);
|
||||
|
||||
this.enabled = true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,6 @@ package com.alttd.essentia.feature.flight;
|
|||
|
||||
import com.alttd.essentia.EssentiaPlugin;
|
||||
import com.alttd.essentia.feature.EssentiaFeature;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
|
||||
public class FlightFeature implements EssentiaFeature {
|
||||
|
||||
|
|
@ -21,9 +20,6 @@ public class FlightFeature implements EssentiaFeature {
|
|||
|
||||
@Override
|
||||
public void register() {
|
||||
final PluginManager pluginManager = plugin.getServer().getPluginManager();
|
||||
pluginManager.registerEvents(new FlightListener(), plugin);
|
||||
|
||||
this.enabled = true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,6 @@ import com.alttd.essentia.api.user.User;
|
|||
import com.alttd.essentia.api.user.UserManager;
|
||||
import com.alttd.essentia.feature.EssentiaFeature;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.plugin.PluginManager;
|
||||
|
||||
public class GodModeFeature implements EssentiaFeature {
|
||||
|
||||
|
|
@ -25,9 +24,6 @@ public class GodModeFeature implements EssentiaFeature {
|
|||
|
||||
@Override
|
||||
public void register() {
|
||||
final PluginManager pluginManager = plugin.getServer().getPluginManager();
|
||||
pluginManager.registerEvents(new GodModeListener(this), plugin);
|
||||
|
||||
this.enabled = true;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user