mirror of
https://github.com/jwdeveloper/TikTokLiveJava.git
synced 2026-02-28 01:09:40 -05:00
Fixed custom listener manager checks. Previous implementation allowed incorrect parameter types!
This commit is contained in:
@@ -96,16 +96,17 @@ public class TikTokListenersManager implements ListenersManager {
|
|||||||
m.isAnnotationPresent(TikTokEventObserver.class)).toList();
|
m.isAnnotationPresent(TikTokEventObserver.class)).toList();
|
||||||
var eventsMap = new HashMap<Class<?>, List<EventConsumer<?>>>();
|
var eventsMap = new HashMap<Class<?>, List<EventConsumer<?>>>();
|
||||||
for (var method : methods) {
|
for (var method : methods) {
|
||||||
var eventClazz = method.getParameterTypes()[1];
|
var liveclientClass = method.getParameterTypes()[0];
|
||||||
|
var eventClass = method.getParameterTypes()[1];
|
||||||
|
|
||||||
if (eventClazz.isAssignableFrom(LiveClient.class) &&
|
if (!LiveClient.class.isAssignableFrom(liveclientClass) && !liveclientClass.equals(LiveClient.class)) {
|
||||||
!eventClazz.equals(LiveClient.class)) {
|
throw new TikTokEventListenerMethodException("Method " + method.getName() + "() 1st parameter must be instance of " + LiveClient.class.getName()
|
||||||
throw new TikTokEventListenerMethodException("Method " + method.getName() + "() 1nd parameter must instance of " + LiveClient.class.getName());
|
+ " | Invalid parameter class: "+liveclientClass.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (eventClazz.isAssignableFrom(TikTokEvent.class) &&
|
if (!TikTokEvent.class.isAssignableFrom(eventClass) && !eventClass.equals(TikTokEvent.class)) {
|
||||||
!eventClazz.equals(TikTokEvent.class)) {
|
throw new TikTokEventListenerMethodException("Method " + method.getName() + "() 2nd parameter must be instance of " + TikTokEvent.class.getName()
|
||||||
throw new TikTokEventListenerMethodException("Method " + method.getName() + "() 2nd parameter must instance of " + TikTokEvent.class.getName());
|
+ " | Invalid parameter class: "+eventClass.getName());
|
||||||
}
|
}
|
||||||
|
|
||||||
EventConsumer eventMethodRef = (liveClient, event) ->
|
EventConsumer eventMethodRef = (liveClient, event) ->
|
||||||
@@ -117,7 +118,7 @@ public class TikTokListenersManager implements ListenersManager {
|
|||||||
throw new TikTokEventListenerMethodException(e);
|
throw new TikTokEventListenerMethodException(e);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
eventsMap.computeIfAbsent(eventClazz, (a) -> new ArrayList<>()).add(eventMethodRef);
|
eventsMap.computeIfAbsent(eventClass, (a) -> new ArrayList<>()).add(eventMethodRef);
|
||||||
}
|
}
|
||||||
return new ListenerBindingModel(listener, eventsMap);
|
return new ListenerBindingModel(listener, eventsMap);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user