Skip to content

Commit 5319a09

Browse files
fix: avoid reflective listener scans for dependency metrics (#128)
1 parent d93c352 commit 5319a09

1 file changed

Lines changed: 12 additions & 23 deletions

File tree

src/main/java/com/xxmicloxx/NoteBlockAPI/NoteBlockAPI.java

Lines changed: 12 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,6 @@
1515
import org.bukkit.scheduler.BukkitWorker;
1616

1717
import java.io.IOException;
18-
import java.lang.reflect.Method;
19-
import java.lang.reflect.Type;
2018
import java.util.*;
2119
import java.util.concurrent.ConcurrentHashMap;
2220

@@ -151,27 +149,18 @@ public void onEnable() {
151149

152150
@Override
153151
public void run() {
154-
Plugin[] plugins = getServer().getPluginManager().getPlugins();
155-
Type[] types = new Type[]{PlayerRangeStateChangeEvent.class, SongDestroyingEvent.class, SongEndEvent.class, SongStoppedEvent.class };
156-
for (Plugin plugin : plugins) {
157-
ArrayList<RegisteredListener> rls = HandlerList.getRegisteredListeners(plugin);
158-
for (RegisteredListener rl : rls) {
159-
Method[] methods = rl.getListener().getClass().getDeclaredMethods();
160-
for (Method m : methods) {
161-
Type[] params = m.getParameterTypes();
162-
param:
163-
for (Type paramType : params) {
164-
for (Type type : types){
165-
if (paramType.equals(type)) {
166-
dependentPlugins.put(plugin, true);
167-
break param;
168-
}
169-
}
170-
}
171-
}
172-
173-
}
174-
}
152+
for (RegisteredListener rl : PlayerRangeStateChangeEvent.getHandlerList().getRegisteredListeners()) {
153+
dependentPlugins.put(rl.getPlugin(), true);
154+
}
155+
for (RegisteredListener rl : SongDestroyingEvent.getHandlerList().getRegisteredListeners()) {
156+
dependentPlugins.put(rl.getPlugin(), true);
157+
}
158+
for (RegisteredListener rl : SongEndEvent.getHandlerList().getRegisteredListeners()) {
159+
dependentPlugins.put(rl.getPlugin(), true);
160+
}
161+
for (RegisteredListener rl : SongStoppedEvent.getHandlerList().getRegisteredListeners()) {
162+
dependentPlugins.put(rl.getPlugin(), true);
163+
}
175164

176165
metrics.addCustomChart(new DrilldownPie("deprecated", () -> {
177166
Map<String, Map<String, Integer>> map = new HashMap<>();

0 commit comments

Comments
 (0)