From 2ccffc6e6d1308e4c19b34cad604bd9acf05d073 Mon Sep 17 00:00:00 2001 From: Luck Date: Sat, 22 Dec 2018 17:03:51 +0000 Subject: [PATCH] Fix error message when event handlers throw an exception --- .../java/me/lucko/luckperms/api/event/LuckPermsEvent.java | 8 ++++++++ .../luckperms/common/event/LuckPermsEventHandler.java | 2 +- .../luckperms/common/event/gen/GeneratedEventSpec.java | 7 ++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/me/lucko/luckperms/api/event/LuckPermsEvent.java b/api/src/main/java/me/lucko/luckperms/api/event/LuckPermsEvent.java index 662050a43..638871c4f 100644 --- a/api/src/main/java/me/lucko/luckperms/api/event/LuckPermsEvent.java +++ b/api/src/main/java/me/lucko/luckperms/api/event/LuckPermsEvent.java @@ -43,4 +43,12 @@ public interface LuckPermsEvent { */ @NonNull LuckPermsApi getApi(); + /** + * Gets the type of the event. + * + * @return the type of the event + * @since 4.4 + */ + @NonNull Class getEventType(); + } diff --git a/common/src/main/java/me/lucko/luckperms/common/event/LuckPermsEventHandler.java b/common/src/main/java/me/lucko/luckperms/common/event/LuckPermsEventHandler.java index 043a867fa..6dd460e50 100644 --- a/common/src/main/java/me/lucko/luckperms/common/event/LuckPermsEventHandler.java +++ b/common/src/main/java/me/lucko/luckperms/common/event/LuckPermsEventHandler.java @@ -108,7 +108,7 @@ public class LuckPermsEventHandler implements EventHan this.consumer.accept(event); this.callCount.incrementAndGet(); } catch (Throwable t) { - this.eventBus.getPlugin().getLogger().warn("Unable to pass event " + event.getClass().getSimpleName() + " to handler " + this.consumer.getClass().getName()); + this.eventBus.getPlugin().getLogger().warn("Unable to pass event " + event.getEventType().getSimpleName() + " to handler " + this.consumer.getClass().getName()); t.printStackTrace(); } } diff --git a/common/src/main/java/me/lucko/luckperms/common/event/gen/GeneratedEventSpec.java b/common/src/main/java/me/lucko/luckperms/common/event/gen/GeneratedEventSpec.java index cdf62f35a..cc8db774e 100644 --- a/common/src/main/java/me/lucko/luckperms/common/event/gen/GeneratedEventSpec.java +++ b/common/src/main/java/me/lucko/luckperms/common/event/gen/GeneratedEventSpec.java @@ -52,12 +52,14 @@ public class GeneratedEventSpec { private static final Method EQUALS_METHOD; private static final Method HASHCODE_METHOD; private static final Method GET_API_METHOD; + private static final Method GET_EVENT_TYPE_METHOD; static { try { TO_STRING_METHOD = Object.class.getMethod("toString"); EQUALS_METHOD = Object.class.getMethod("equals", Object.class); HASHCODE_METHOD = Object.class.getMethod("hashCode"); GET_API_METHOD = LuckPermsEvent.class.getMethod("getApi"); + GET_EVENT_TYPE_METHOD = LuckPermsEvent.class.getMethod("getEventType"); } catch (NoSuchMethodException e) { throw new ExceptionInInitializerError(e); } @@ -81,7 +83,7 @@ public class GeneratedEventSpec { if (method.isDefault()) { continue; } - if (GET_API_METHOD.equals(method)) { + if (GET_API_METHOD.equals(method) || GET_EVENT_TYPE_METHOD.equals(method)) { continue; } @@ -141,6 +143,9 @@ public class GeneratedEventSpec { if (GET_API_METHOD.equals(method)) { return this.api; } + if (GET_EVENT_TYPE_METHOD.equals(method)) { + return GeneratedEventSpec.this.eventClass; + } if (method.getDeclaringClass() == Object.class || method.isDefault()) { return MethodHandles.lookup()