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.Arrays;
import java.util.List; import java.util.List;
@Value @Getter
public class Picture { public class Picture {
List<String> urls; List<String> urls;
public Picture(io.github.jwdeveloper.tiktok.messages.Image profilePicture) { public Picture(io.github.jwdeveloper.tiktok.messages.Image profilePicture) {
this.urls = profilePicture.getUrlListList(); this.urls = profilePicture.getUrlListList();
} }
@@ -24,15 +23,6 @@ public class Picture {
this.urls = Arrays.stream(urls).toList(); this.urls = Arrays.stream(urls).toList();
} }
public void downlaod()
{
}
public void downloadAsync()
{
}
public static Picture Map(io.github.jwdeveloper.tiktok.messages.Image profilePicture) 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) { public <T extends TikTokEvent> void unsubscribeAll(Class<?> clazz) {
events.remove(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.annotations.TikTokEventHandler;
import io.github.jwdeveloper.tiktok.events.TikTokEvent; import io.github.jwdeveloper.tiktok.events.TikTokEvent;
import io.github.jwdeveloper.tiktok.events.TikTokEventConsumer; 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.TikTokEventListenerMethodException;
import io.github.jwdeveloper.tiktok.exceptions.TikTokLiveException; import io.github.jwdeveloper.tiktok.exceptions.TikTokLiveException;
import io.github.jwdeveloper.tiktok.handlers.TikTokEventObserver; import io.github.jwdeveloper.tiktok.handlers.TikTokEventObserver;
@@ -45,6 +44,13 @@ public class TikTokListenersManager implements ListenersManager {
if (optional.isEmpty()) { if (optional.isEmpty()) {
return; return;
} }
var bindingModel =optional.get();
for(var consumer : bindingModel.getEvents())
{
eventObserver.unsubscribe(consumer);
}
bindingModels.remove(optional.get()); bindingModels.remove(optional.get());
} }
@@ -61,9 +67,9 @@ public class TikTokListenersManager implements ListenersManager {
for (var method : methods) for (var method : methods)
{ {
var eventClazz = method.getParameterTypes()[1]; 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() { var tikTokEventConsumer = new TikTokEventConsumer() {
@Override @Override

View File

@@ -27,25 +27,25 @@ Do you prefer other programming languages?
```xml ```xml
<repositories> <repositories>
<repository> <repository>
<id>jitpack.io</id> <id>jitpack.io</id>
<url>https://jitpack.io</url> <url>https://jitpack.io</url>
</repository> </repository>
</repositories> </repositories>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.github.jwdeveloper.TikTok-Live-Java</groupId> <groupId>com.github.jwdeveloper.TikTok-Live-Java</groupId>
<artifactId>Client</artifactId> <artifactId>Client</artifactId>
<version>0.0.14-Release</version> <version>0.0.17-Release</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency> <dependency>
<groupId>com.google.code.gson</groupId> <groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId> <artifactId>gson</artifactId>
<version>2.10.1</version> <version>2.10.1</version>
</dependency> </dependency>
</dependencies> </dependencies>
``` ```
2. Create your first chat connection 2. Create your first chat connection
@@ -77,7 +77,7 @@ public class SimpleExample {
}) })
.onComment((client, event) -> .onComment((client, event) ->
{ {
System.out.println(event.getUser().getUniqueId() + ": " + event.getText()); System.out.println(event.getUser().getUniqueId() + ": " + event.getText());
}) })
.onEvent((client, event) -> .onEvent((client, event) ->
{ {
@@ -153,6 +153,13 @@ public class ListenerExample
System.in.read(); 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 public static class CustomListener implements TikTokEventListener
{ {
@@ -165,6 +172,7 @@ public class ListenerExample
@TikTokEventHandler @TikTokEventHandler
public void onCommentMessage(LiveClient liveClient, TikTokCommentEvent event) public void onCommentMessage(LiveClient liveClient, TikTokCommentEvent event)
{ {
event.getUser().getProfilePicture().downlaod();
System.out.println(event.getText()); System.out.println(event.getText());
} }

View File

@@ -23,6 +23,13 @@ public class ListenerExample
System.in.read(); 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 public static class CustomListener implements TikTokEventListener
{ {