Skip to content

Commit 0949732

Browse files
committed
Ignore synthetic methods in bulk registration
Fixes #89
1 parent 3bc2e8e commit 0949732

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

src/main/java/net/minecraftforge/eventbus/internal/EventListenerFactory.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,9 @@ public static Collection<EventListener> register(BusGroupImpl busGroup, MethodHa
5252
if (listenerInstance == null && !Modifier.isStatic(method.getModifiers()))
5353
continue;
5454

55+
if (method.isSynthetic())
56+
continue; // EventBus#89
57+
5558
int paramCount = method.getParameterCount();
5659
if (paramCount == 0 || paramCount > 2)
5760
continue;
@@ -99,8 +102,10 @@ public static Collection<EventListener> registerStrict(BusGroupImpl busGroup, Me
99102
Class<?> listenerClass, @Nullable Object listenerInstance) {
100103
Class<? extends Event> firstValidListenerEventType = null;
101104

102-
Method[] declaredMethods = listenerClass.getDeclaredMethods();
103-
if (declaredMethods.length == 0) {
105+
List<Method> declaredMethods = Arrays.stream(listenerClass.getDeclaredMethods())
106+
.filter(Predicate.not(Method::isSynthetic)) // EventBus#89
107+
.toList();
108+
if (declaredMethods.isEmpty()) {
104109
var errMsg = "No declared methods found in " + listenerClass.getName();
105110
var superClass = listenerClass.getSuperclass();
106111
if (superClass != null && superClass != Record.class && superClass != Enum.class) {

0 commit comments

Comments
 (0)