From 97f57912ad3e23fa722503b2c69f54b3946b97b1 Mon Sep 17 00:00:00 2001 From: JW Date: Thu, 7 Sep 2023 14:51:51 +0200 Subject: [PATCH] Bugs: Method for listeners was throwing exception TikTokListenersManager.removeListener() was not working --- .../tiktok/events/objects/Picture.java | 12 +---- .../tiktok/handlers/TikTokEventObserver.java | 7 +++ .../listener/TikTokListenersManager.java | 12 +++-- README.md | 46 +++++++++++-------- .../jwdeveloper/tiktok/ListenerExample.java | 7 +++ 5 files changed, 51 insertions(+), 33 deletions(-) diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/Picture.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/Picture.java index f375cad..31adda8 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/Picture.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/Picture.java @@ -7,11 +7,10 @@ import java.util.ArrayList; import java.util.Arrays; import java.util.List; -@Value +@Getter public class Picture { List 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) { diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/handlers/TikTokEventObserver.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/handlers/TikTokEventObserver.java index 1fd99ec..058a832 100644 --- a/Client/src/main/java/io/github/jwdeveloper/tiktok/handlers/TikTokEventObserver.java +++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/handlers/TikTokEventObserver.java @@ -44,4 +44,11 @@ public class TikTokEventObserver { public void unsubscribeAll(Class clazz) { events.remove(clazz); } + + public void unsubscribe(TikTokEventConsumer consumer) { + for(var entry : events.entrySet()) + { + entry.getValue().remove(consumer); + } + } } diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/listener/TikTokListenersManager.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/listener/TikTokListenersManager.java index c8618d8..c42b3c7 100644 --- a/Client/src/main/java/io/github/jwdeveloper/tiktok/listener/TikTokListenersManager.java +++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/listener/TikTokListenersManager.java @@ -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 diff --git a/README.md b/README.md index 9bb9f3b..00c75b7 100644 --- a/README.md +++ b/README.md @@ -27,25 +27,25 @@ Do you prefer other programming languages? ```xml - - jitpack.io - https://jitpack.io - - + + jitpack.io + https://jitpack.io + + - - - com.github.jwdeveloper.TikTok-Live-Java - Client - 0.0.14-Release - compile - - - com.google.code.gson - gson - 2.10.1 - - + + + com.github.jwdeveloper.TikTok-Live-Java + Client + 0.0.17-Release + compile + + + com.google.code.gson + gson + 2.10.1 + + ``` 2. Create your first chat connection @@ -77,7 +77,7 @@ public class SimpleExample { }) .onComment((client, event) -> { - System.out.println(event.getUser().getUniqueId() + ": " + event.getText()); + System.out.println(event.getUser().getUniqueId() + ": " + event.getText()); }) .onEvent((client, event) -> { @@ -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()); } diff --git a/TestApplication/src/main/java/io/github/jwdeveloper/tiktok/ListenerExample.java b/TestApplication/src/main/java/io/github/jwdeveloper/tiktok/ListenerExample.java index 57c5452..2f11511 100644 --- a/TestApplication/src/main/java/io/github/jwdeveloper/tiktok/ListenerExample.java +++ b/TestApplication/src/main/java/io/github/jwdeveloper/tiktok/ListenerExample.java @@ -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 {