Method for listeners was throwing exception
  TikTokListenersManager.removeListener() was not working
This commit is contained in:
JW
2023-09-07 14:51:51 +02:00
parent d61697dbff
commit 97f57912ad
5 changed files with 51 additions and 33 deletions

View File

@@ -7,11 +7,10 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Value
@Getter
public class Picture {
List<String> urls;
public Picture(io.github.jwdeveloper.tiktok.messages.Image profilePicture) {
this.urls = profilePicture.getUrlListList();
}
@@ -24,15 +23,6 @@ public class Picture {
this.urls = Arrays.stream(urls).toList();
}
public void downlaod()
{
}
public void downloadAsync()
{
}
public static Picture Map(io.github.jwdeveloper.tiktok.messages.Image profilePicture)
{

View File

@@ -44,4 +44,11 @@ public class TikTokEventObserver {
public <T extends TikTokEvent> void unsubscribeAll(Class<?> clazz) {
events.remove(clazz);
}
public <T extends TikTokEvent> void unsubscribe(TikTokEventConsumer<T> consumer) {
for(var entry : events.entrySet())
{
entry.getValue().remove(consumer);
}
}
}

View File

@@ -4,7 +4,6 @@ package io.github.jwdeveloper.tiktok.listener;
import io.github.jwdeveloper.tiktok.annotations.TikTokEventHandler;
import io.github.jwdeveloper.tiktok.events.TikTokEvent;
import io.github.jwdeveloper.tiktok.events.TikTokEventConsumer;
import io.github.jwdeveloper.tiktok.events.messages.TikTokWebsocketMessageEvent;
import io.github.jwdeveloper.tiktok.exceptions.TikTokEventListenerMethodException;
import io.github.jwdeveloper.tiktok.exceptions.TikTokLiveException;
import io.github.jwdeveloper.tiktok.handlers.TikTokEventObserver;
@@ -45,6 +44,13 @@ public class TikTokListenersManager implements ListenersManager {
if (optional.isEmpty()) {
return;
}
var bindingModel =optional.get();
for(var consumer : bindingModel.getEvents())
{
eventObserver.unsubscribe(consumer);
}
bindingModels.remove(optional.get());
}
@@ -61,9 +67,9 @@ public class TikTokListenersManager implements ListenersManager {
for (var method : methods)
{
var eventClazz = method.getParameterTypes()[1];
if(!eventClazz.isAssignableFrom(TikTokEvent.class))
if(eventClazz.isAssignableFrom(TikTokEvent.class))
{
throw new TikTokEventListenerMethodException("Method "+method.getName()+" 2nd parameter must instance of "+TikTokEvent.class.getName());
throw new TikTokEventListenerMethodException("Method "+method.getName()+"() 2nd parameter must instance of "+TikTokEvent.class.getName());
}
var tikTokEventConsumer = new TikTokEventConsumer() {
@Override

View File

@@ -37,7 +37,7 @@ Do you prefer other programming languages?
<dependency>
<groupId>com.github.jwdeveloper.TikTok-Live-Java</groupId>
<artifactId>Client</artifactId>
<version>0.0.14-Release</version>
<version>0.0.17-Release</version>
<scope>compile</scope>
</dependency>
<dependency>
@@ -153,6 +153,13 @@ public class ListenerExample
System.in.read();
}
/*
Method in TikTokEventListener should meet 4 requirements to be detected
- must have @TikTokEventHandler annotation
- must have 2 parameters
- first parameter must be LiveClient
- second must be class that extending TikTokEvent
*/
public static class CustomListener implements TikTokEventListener
{
@@ -165,6 +172,7 @@ public class ListenerExample
@TikTokEventHandler
public void onCommentMessage(LiveClient liveClient, TikTokCommentEvent event)
{
event.getUser().getProfilePicture().downlaod();
System.out.println(event.getText());
}

View File

@@ -23,6 +23,13 @@ public class ListenerExample
System.in.read();
}
/*
Method in TikTokEventListener should meet 4 requirements to be detected
- must have @TikTokEventHandler annotation
- must have 2 parameters
- first parameter must be LiveClient
- second must be class that extending TikTokEvent
*/
public static class CustomListener implements TikTokEventListener
{