From daf2ad770a95dc42c755f87308106419a18c5cf1 Mon Sep 17 00:00:00 2001 From: Sascha Bartl Date: Sun, 22 Feb 2026 09:12:11 +0100 Subject: [PATCH] fix: avoid reflective listener scans for dependency metrics --- .../xxmicloxx/NoteBlockAPI/NoteBlockAPI.java | 35 +++++++------------ 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/xxmicloxx/NoteBlockAPI/NoteBlockAPI.java b/src/main/java/com/xxmicloxx/NoteBlockAPI/NoteBlockAPI.java index abc593c..fa59d9a 100644 --- a/src/main/java/com/xxmicloxx/NoteBlockAPI/NoteBlockAPI.java +++ b/src/main/java/com/xxmicloxx/NoteBlockAPI/NoteBlockAPI.java @@ -15,8 +15,6 @@ import org.bukkit.scheduler.BukkitWorker; import java.io.IOException; -import java.lang.reflect.Method; -import java.lang.reflect.Type; import java.util.*; import java.util.concurrent.ConcurrentHashMap; @@ -151,27 +149,18 @@ public void onEnable() { @Override public void run() { - Plugin[] plugins = getServer().getPluginManager().getPlugins(); - Type[] types = new Type[]{PlayerRangeStateChangeEvent.class, SongDestroyingEvent.class, SongEndEvent.class, SongStoppedEvent.class }; - for (Plugin plugin : plugins) { - ArrayList rls = HandlerList.getRegisteredListeners(plugin); - for (RegisteredListener rl : rls) { - Method[] methods = rl.getListener().getClass().getDeclaredMethods(); - for (Method m : methods) { - Type[] params = m.getParameterTypes(); - param: - for (Type paramType : params) { - for (Type type : types){ - if (paramType.equals(type)) { - dependentPlugins.put(plugin, true); - break param; - } - } - } - } - - } - } + for (RegisteredListener rl : PlayerRangeStateChangeEvent.getHandlerList().getRegisteredListeners()) { + dependentPlugins.put(rl.getPlugin(), true); + } + for (RegisteredListener rl : SongDestroyingEvent.getHandlerList().getRegisteredListeners()) { + dependentPlugins.put(rl.getPlugin(), true); + } + for (RegisteredListener rl : SongEndEvent.getHandlerList().getRegisteredListeners()) { + dependentPlugins.put(rl.getPlugin(), true); + } + for (RegisteredListener rl : SongStoppedEvent.getHandlerList().getRegisteredListeners()) { + dependentPlugins.put(rl.getPlugin(), true); + } metrics.addCustomChart(new DrilldownPie("deprecated", () -> { Map> map = new HashMap<>();