Minor changes to DebugListener.
Also prints the class names of all registered listeners now.master
parent
cf89a2cb6f
commit
87c9c0dc41
|
@ -288,8 +288,10 @@ public class SKShopkeepersPlugin extends JavaPlugin implements ShopkeepersPlugin
|
|||
// register debug listener:
|
||||
// run delayed to also catch events / event listeners of other plugins:
|
||||
Bukkit.getScheduler().runTaskLater(this, () -> {
|
||||
if (Settings.debugOptions.contains("log-all-events") || Settings.debugOptions.contains("print-listeners")) {
|
||||
DebugListener.register();
|
||||
boolean logAllEvent = Settings.debugOptions.contains("log-all-events");
|
||||
boolean printListeners = Settings.debugOptions.contains("print-listeners");
|
||||
if (logAllEvent || printListeners) {
|
||||
DebugListener.register(logAllEvent, printListeners);
|
||||
}
|
||||
}, 10L);
|
||||
}
|
||||
|
|
|
@ -13,15 +13,13 @@ import org.bukkit.plugin.EventExecutor;
|
|||
import org.bukkit.plugin.RegisteredListener;
|
||||
|
||||
import com.nisovin.shopkeepers.SKShopkeepersPlugin;
|
||||
import com.nisovin.shopkeepers.Settings;
|
||||
|
||||
public class DebugListener implements Listener {
|
||||
|
||||
public static void register() {
|
||||
public static DebugListener register(boolean logAllEvents, boolean printListeners) {
|
||||
// TODO might only log events whose classes got loaded yet (eg. with registered listeners).
|
||||
// TODO quite spammy. Filter/Reduce spamming events output.
|
||||
Log.info("Registering DebugListener to log all events!");
|
||||
DebugListener debugListener = new DebugListener();
|
||||
Log.info("Registering DebugListener.");
|
||||
DebugListener debugListener = new DebugListener(logAllEvents, printListeners);
|
||||
List<HandlerList> allHandlerLists = HandlerList.getHandlerLists();
|
||||
for (HandlerList handlerList : allHandlerLists) {
|
||||
handlerList.register(new RegisteredListener(debugListener, new EventExecutor() {
|
||||
|
@ -31,6 +29,7 @@ public class DebugListener implements Listener {
|
|||
}
|
||||
}, EventPriority.LOWEST, SKShopkeepersPlugin.getInstance(), false));
|
||||
}
|
||||
return debugListener;
|
||||
}
|
||||
|
||||
private static class EventData {
|
||||
|
@ -41,13 +40,19 @@ public class DebugListener implements Listener {
|
|||
private String lastLoggedEvent = null;
|
||||
private int lastLoggedEventCounter = 0;
|
||||
|
||||
private boolean logAllEvents = Settings.debugOptions.contains("log-all-events");
|
||||
private boolean printListeners = Settings.debugOptions.contains("print-listeners");
|
||||
private final boolean logAllEvents;
|
||||
private final boolean printListeners;
|
||||
|
||||
DebugListener() {
|
||||
private DebugListener(boolean logAllEvents, boolean printListeners) {
|
||||
this.logAllEvents = logAllEvents;
|
||||
this.printListeners = printListeners;
|
||||
}
|
||||
|
||||
public void handleEvent(Event event) {
|
||||
public void unregister() {
|
||||
HandlerList.unregisterAll(this);
|
||||
}
|
||||
|
||||
private void handleEvent(Event event) {
|
||||
String eventName = event.getEventName();
|
||||
EventData data = eventData.get(eventName);
|
||||
if (data == null) {
|
||||
|
|
|
@ -49,7 +49,8 @@ public final class Utils {
|
|||
HandlerList handlerList = event.getHandlers();
|
||||
Log.info("Registered listeners for event " + event.getEventName() + ":");
|
||||
for (RegisteredListener rl : handlerList.getRegisteredListeners()) {
|
||||
Log.info(" - " + rl.getPlugin().getName() + ", priority: " + rl.getPriority() + ", ignoring cancelled: " + rl.isIgnoringCancelled());
|
||||
Log.info(" - " + rl.getPlugin().getName() + " (" + rl.getListener().getClass().getName() + ")"
|
||||
+ ", priority: " + rl.getPriority() + ", ignoring cancelled: " + rl.isIgnoringCancelled());
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue