From 4a157143ecf649b5a5a7cd2e5dc707a1f394bfaf Mon Sep 17 00:00:00 2001 From: JW Date: Thu, 7 Sep 2023 03:19:25 +0200 Subject: [PATCH] Changes: `TikTokEventListener` new method of listening events see it at TestApplication/ListenerExample.java Bugs: - Fixed bug: Websocket was sending ping after it was closed --- .../jwdeveloper/tiktok/ClientSettings.java | 2 + .../tiktok/annotations/EventMeta.java | 10 + .../tiktok/annotations/EventType.java | 10 + .../tiktok/annotations/Nullable.java | 4 - .../annotations/TikTokEventHandler.java | 10 + .../tiktok/events/TikTokEvent.java | 38 +- .../tiktok/events/TikTokEventBuilder.java | 2 +- .../tiktok/events/base/TikTokHeaderEvent.java | 48 + .../events/base/TikTokLiveClientEvent.java | 7 + .../events/base/TikTokUnhandledEvent.java | 12 + .../messages/TikTokBarrageMessageEvent.java | 31 +- .../events/messages/TikTokCaptionEvent.java | 17 +- .../events/messages/TikTokCommentEvent.java | 31 +- .../events/messages/TikTokConnectedEvent.java | 9 +- .../messages/TikTokDetectMessageEvent.java | 12 +- .../messages/TikTokDisconnectedEvent.java | 8 +- .../events/messages/TikTokEmoteEvent.java | 24 +- .../events/messages/TikTokEnvelopeEvent.java | 12 +- .../events/messages/TikTokErrorEvent.java | 6 +- .../events/messages/TikTokFollowEvent.java | 23 +- .../messages/TikTokGiftBroadcastEvent.java | 21 +- .../messages/TikTokGiftMessageEvent.java | 48 +- .../messages/TikTokGoalUpdateEvent.java | 10 +- .../events/messages/TikTokIMDeleteEvent.java | 6 +- .../messages/TikTokInRoomBannerEvent.java | 8 +- .../events/messages/TikTokJoinEvent.java | 9 +- .../events/messages/TikTokLikeEvent.java | 9 +- .../messages/TikTokLinkLayerMessageEvent.java | 6 +- .../messages/TikTokLinkMessageEvent.java | 9 +- .../messages/TikTokLinkMicArmiesEvent.java | 8 +- .../messages/TikTokLinkMicBattleEvent.java | 6 +- .../messages/TikTokLinkMicFanTicketEvent.java | 6 +- .../messages/TikTokLinkMicMethodEvent.java | 6 +- .../events/messages/TikTokLiveEndedEvent.java | 4 +- .../messages/TikTokLivePausedEvent.java | 3 + .../messages/TikTokPollMessageEvent.java | 6 +- .../events/messages/TikTokQuestionEvent.java | 6 +- .../events/messages/TikTokRankTextEvent.java | 10 +- .../messages/TikTokRankUpdateEvent.java | 6 +- .../messages/TikTokRoomMessageEvent.java | 10 +- .../messages/TikTokRoomPinMessageEvent.java | 6 +- .../messages/TikTokRoomViewerDataEvent.java | 6 +- .../events/messages/TikTokShareEvent.java | 21 +- .../messages/TikTokShopMessageEvent.java | 6 +- .../events/messages/TikTokSubNotifyEvent.java | 6 +- .../events/messages/TikTokSubscribeEvent.java | 6 +- .../TikTokUnauthorizedMemberEvent.java | 6 +- .../messages/TikTokUnhandledControlEvent.java | 11 +- .../events/messages/TikTokUnhandledEvent.java | 14 - .../messages/TikTokUnhandledMemberEvent.java | 11 +- .../messages/TikTokUnhandledSocialEvent.java | 12 +- .../TikTokUnhandledWebsocketMessageEvent.java | 19 + .../messages/TikTokWebsocketMessageEvent.java | 6 +- .../tiktok/events/objects/Badge.java | 88 +- .../tiktok/events/objects/BarrageData.java | 18 +- .../tiktok/events/objects/EnumValue.java | 15 + .../tiktok/events/objects/Gift.java | 29 +- .../tiktok/events/objects/LinkMicArmy.java | 25 +- .../events/objects/LinkMicBattleTeam.java | 7 +- .../tiktok/events/objects/Picture.java | 36 +- .../tiktok/events/objects/PollOption.java | 7 +- .../tiktok/events/objects/TikTokGift.java | 17 +- .../tiktok/events/objects/TopViewer.java | 16 +- .../tiktok/events/objects/User.java | 52 +- .../TikTokEventListenerMethodException.java | 23 + .../tiktok/http/TikTokHttpRequest.java | 7 +- .../tiktok/listener/ListenersManager.java | 11 + .../tiktok/listener/TikTokEventListener.java | 6 + .../jwdeveloper/tiktok/live/LiveClient.java | 8 + API/src/main/proto/tiktokSchema.proto | 1135 ++++++++++++++--- .../jwdeveloper/tiktok/TikTokGiftManager.java | 7 +- .../jwdeveloper/tiktok/TikTokLiveClient.java | 30 +- .../tiktok/TikTokLiveClientBuilder.java | 38 +- ...tHandler.java => TikTokEventObserver.java} | 29 +- .../tiktok/handlers/TikTokMessageHandler.java | 8 +- .../TikTokMessageHandlerRegistration.java | 5 +- .../tiktok/http/TikTokApiService.java | 115 +- ...tpApiClient.java => TikTokHttpClient.java} | 46 +- .../tiktok/http/TikTokHttpRequestFactory.java | 39 +- .../tiktok/listener/ListenerBindingModel.java | 17 + .../listener/TikTokListenersManager.java | 82 ++ .../websocket/TikTokWebSocketClient.java | 15 +- .../websocket/TikTokWebSocketListener.java | 32 +- .../tiktok/WebResponseHandlerTests.java | 4 +- README.md | 186 ++- .../jwdeveloper/tiktok/ListenerExample.java | 47 + .../io/github/jwdeveloper/tiktok/Main.java | 19 +- .../jwdeveloper/tiktok/SimpleExample.java | 7 +- .../tiktok/tools/collector/Main.java | 14 +- Tools-ReadmeGenerator/pom.xml | 28 + .../tiktok/EventsListGenerator.java | 75 ++ .../tiktok/LiveClientMethodsGenerator.java | 45 + .../io/github/jwdeveloper/tiktok/Main.java | 10 + .../jwdeveloper/tiktok/ReadmeGenerator.java | 66 + .../src/main/resources/template.md | 89 ++ .../tiktok/GenerateEventsListRun.java | 31 - .../tiktok/utils/FilesUtility.java | 58 +- .../tiktok/utils/TemplateUtility.java | 34 + pom.xml | 1 + 99 files changed, 2558 insertions(+), 762 deletions(-) create mode 100644 API/src/main/java/io/github/jwdeveloper/tiktok/annotations/EventMeta.java create mode 100644 API/src/main/java/io/github/jwdeveloper/tiktok/annotations/EventType.java delete mode 100644 API/src/main/java/io/github/jwdeveloper/tiktok/annotations/Nullable.java create mode 100644 API/src/main/java/io/github/jwdeveloper/tiktok/annotations/TikTokEventHandler.java create mode 100644 API/src/main/java/io/github/jwdeveloper/tiktok/events/base/TikTokHeaderEvent.java create mode 100644 API/src/main/java/io/github/jwdeveloper/tiktok/events/base/TikTokLiveClientEvent.java create mode 100644 API/src/main/java/io/github/jwdeveloper/tiktok/events/base/TikTokUnhandledEvent.java delete mode 100644 API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledEvent.java create mode 100644 API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledWebsocketMessageEvent.java create mode 100644 API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/EnumValue.java create mode 100644 API/src/main/java/io/github/jwdeveloper/tiktok/exceptions/TikTokEventListenerMethodException.java create mode 100644 API/src/main/java/io/github/jwdeveloper/tiktok/listener/ListenersManager.java create mode 100644 API/src/main/java/io/github/jwdeveloper/tiktok/listener/TikTokEventListener.java rename Client/src/main/java/io/github/jwdeveloper/tiktok/handlers/{TikTokEventHandler.java => TikTokEventObserver.java} (53%) rename Client/src/main/java/io/github/jwdeveloper/tiktok/http/{TikTokHttpApiClient.java => TikTokHttpClient.java} (70%) create mode 100644 Client/src/main/java/io/github/jwdeveloper/tiktok/listener/ListenerBindingModel.java create mode 100644 Client/src/main/java/io/github/jwdeveloper/tiktok/listener/TikTokListenersManager.java create mode 100644 TestApplication/src/main/java/io/github/jwdeveloper/tiktok/ListenerExample.java create mode 100644 Tools-ReadmeGenerator/pom.xml create mode 100644 Tools-ReadmeGenerator/src/main/java/io/github/jwdeveloper/tiktok/EventsListGenerator.java create mode 100644 Tools-ReadmeGenerator/src/main/java/io/github/jwdeveloper/tiktok/LiveClientMethodsGenerator.java create mode 100644 Tools-ReadmeGenerator/src/main/java/io/github/jwdeveloper/tiktok/Main.java create mode 100644 Tools-ReadmeGenerator/src/main/java/io/github/jwdeveloper/tiktok/ReadmeGenerator.java create mode 100644 Tools-ReadmeGenerator/src/main/resources/template.md delete mode 100644 Tools/src/main/java/io/github/jwdeveloper/tiktok/GenerateEventsListRun.java create mode 100644 Tools/src/main/java/io/github/jwdeveloper/tiktok/utils/TemplateUtility.java diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/ClientSettings.java b/API/src/main/java/io/github/jwdeveloper/tiktok/ClientSettings.java index c2a8c02..f4821be 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/ClientSettings.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/ClientSettings.java @@ -26,6 +26,7 @@ public class ClientSettings { /// private boolean retryOnConnectionFailure; + /// /// Wait to connect again for selected amount of time /// @@ -65,5 +66,6 @@ public class ClientSettings { /// Parameters used in requests to tiktok api /// private Map clientParameters; + } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/annotations/EventMeta.java b/API/src/main/java/io/github/jwdeveloper/tiktok/annotations/EventMeta.java new file mode 100644 index 0000000..71dc01a --- /dev/null +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/annotations/EventMeta.java @@ -0,0 +1,10 @@ +package io.github.jwdeveloper.tiktok.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface EventMeta +{ + EventType eventType(); +} diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/annotations/EventType.java b/API/src/main/java/io/github/jwdeveloper/tiktok/annotations/EventType.java new file mode 100644 index 0000000..27c79f1 --- /dev/null +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/annotations/EventType.java @@ -0,0 +1,10 @@ +package io.github.jwdeveloper.tiktok.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + + +public enum EventType +{ + Control, Message, Custom +} diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/annotations/Nullable.java b/API/src/main/java/io/github/jwdeveloper/tiktok/annotations/Nullable.java deleted file mode 100644 index 716cf6b..0000000 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/annotations/Nullable.java +++ /dev/null @@ -1,4 +0,0 @@ -package io.github.jwdeveloper.tiktok.annotations; - -public @interface Nullable { -} diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/annotations/TikTokEventHandler.java b/API/src/main/java/io/github/jwdeveloper/tiktok/annotations/TikTokEventHandler.java new file mode 100644 index 0000000..a7882c1 --- /dev/null +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/annotations/TikTokEventHandler.java @@ -0,0 +1,10 @@ +package io.github.jwdeveloper.tiktok.annotations; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +@Retention(RetentionPolicy.RUNTIME) +public @interface TikTokEventHandler +{ + +} diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/TikTokEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/TikTokEvent.java index c70cc90..1ac8481 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/TikTokEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/TikTokEvent.java @@ -3,39 +3,11 @@ package io.github.jwdeveloper.tiktok.events; import io.github.jwdeveloper.tiktok.messages.*; import lombok.Getter; +/* + Base class for all events + */ @Getter -public class TikTokEvent { - private long messageId; - private long roomId; - private long timeStamp; +public abstract class TikTokEvent +{ - public TikTokEvent(MessageHeader header) { - this(header.getMessageId(),header.getRoomId(), header.getTimeStamp1()); - } - - public TikTokEvent(GiftMessageHeader header) { - this(header.getMessageId(),header.getRoomId(), header.getTimeStamp1()); - } - - public TikTokEvent(MemberMessageHeader header) { - this(header.getMessageId(),header.getRoomId(), header.getTimeStamp1()); - } - - public TikTokEvent(SocialMessageHeader header) { - this(header.getMessageId(),header.getRoomId(), header.getTimeStamp1()); - } - - public TikTokEvent(LikeMessageHeader header) { - this(header.getMessageId(),header.getRoomId(), header.getTimeStamp1()); - } - - public TikTokEvent(long messageId, long roomId, long timeStamp) { - this.messageId = messageId; - this.roomId = roomId; - this.timeStamp = timeStamp; - } - - public TikTokEvent() { - - } } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/TikTokEventBuilder.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/TikTokEventBuilder.java index 8784fad..3f17981 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/TikTokEventBuilder.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/TikTokEventBuilder.java @@ -66,7 +66,7 @@ public interface TikTokEventBuilder { T onError(TikTokEventConsumer event); - T onUnhandled(TikTokEventConsumer event); + T onUnhandled(TikTokEventConsumer event); T onJoin(TikTokEventConsumer event); diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/base/TikTokHeaderEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/base/TikTokHeaderEvent.java new file mode 100644 index 0000000..c80e9d8 --- /dev/null +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/base/TikTokHeaderEvent.java @@ -0,0 +1,48 @@ +package io.github.jwdeveloper.tiktok.events.base; + +import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.messages.*; +import lombok.Getter; + +@Getter +public class TikTokHeaderEvent extends TikTokEvent { + private final long messageId; + private final long roomId; + private final long timeStamp; + + public TikTokHeaderEvent(Common header) { + this(header.getMsgId(), header.getRoomId(), header.getCreateTime()); + } + + public TikTokHeaderEvent(MessageHeader header) { + this(header.getMessageId(), header.getRoomId(), header.getTimeStamp1()); + } + + public TikTokHeaderEvent(GiftMessageHeader header) { + this(header.getMessageId(), header.getRoomId(), header.getTimeStamp1()); + } + + public TikTokHeaderEvent(MemberMessageHeader header) { + this(header.getMessageId(), header.getRoomId(), header.getTimeStamp1()); + } + + public TikTokHeaderEvent(SocialMessageHeader header) { + this(header.getMessageId(), header.getRoomId(), header.getTimeStamp1()); + } + + public TikTokHeaderEvent(LikeMessageHeader header) { + this(header.getMessageId(), header.getRoomId(), header.getTimeStamp1()); + } + + public TikTokHeaderEvent(long messageId, long roomId, long timeStamp) { + this.messageId = messageId; + this.roomId = roomId; + this.timeStamp = timeStamp; + } + + public TikTokHeaderEvent() { + messageId = 0; + roomId = 0; + timeStamp = 0; + } +} diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/base/TikTokLiveClientEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/base/TikTokLiveClientEvent.java new file mode 100644 index 0000000..415b380 --- /dev/null +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/base/TikTokLiveClientEvent.java @@ -0,0 +1,7 @@ +package io.github.jwdeveloper.tiktok.events.base; + +import io.github.jwdeveloper.tiktok.events.TikTokEvent; + + +public class TikTokLiveClientEvent extends TikTokEvent { +} diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/base/TikTokUnhandledEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/base/TikTokUnhandledEvent.java new file mode 100644 index 0000000..398d712 --- /dev/null +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/base/TikTokUnhandledEvent.java @@ -0,0 +1,12 @@ +package io.github.jwdeveloper.tiktok.events.base; + +import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import lombok.AllArgsConstructor; +import lombok.Getter; + +@Getter +@AllArgsConstructor +public class TikTokUnhandledEvent extends TikTokEvent +{ + private final T data; +} diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokBarrageMessageEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokBarrageMessageEvent.java index 3ab5f85..0a27aba 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokBarrageMessageEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokBarrageMessageEvent.java @@ -1,29 +1,28 @@ package io.github.jwdeveloper.tiktok.events.messages; -import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.BarrageData; import io.github.jwdeveloper.tiktok.events.objects.Picture; import io.github.jwdeveloper.tiktok.events.objects.User; import io.github.jwdeveloper.tiktok.messages.WebcastBarrageMessage; -import lombok.Getter; - -@Getter -public class TikTokBarrageMessageEvent extends TikTokEvent { - private final Picture picture; - - private final Picture picture2; - - private final Picture picture3; - - private final User user; - private final BarrageData barrageData; +import lombok.Value; +@Value +@EventMeta(eventType = EventType.Message) +public class TikTokBarrageMessageEvent extends TikTokHeaderEvent { + Picture picture; + Picture picture2; + Picture picture3; + User user; + BarrageData barrageData; public TikTokBarrageMessageEvent(WebcastBarrageMessage msg) { super(msg.getHeader()); - picture = new Picture(msg.getPicture()); - picture2 = new Picture(msg.getPicture2()); - picture3 = new Picture(msg.getPicture3()); + picture = new Picture(msg.getImage()); + picture2 = new Picture(msg.getImage2()); + picture3 = new Picture(msg.getImage3()); user = new User(msg.getUserData().getUser()); barrageData = new BarrageData(msg.getMessage().getEventType(), msg.getMessage().getLabel(), diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokCaptionEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokCaptionEvent.java index b67c203..c3a1746 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokCaptionEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokCaptionEvent.java @@ -1,16 +1,19 @@ package io.github.jwdeveloper.tiktok.events.messages; -import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.messages.WebcastCaptionMessage; -import lombok.Getter; +import lombok.Value; -@Getter -public class TikTokCaptionEvent extends TikTokEvent { - private final Long captionTimeStamp; +@Value +@EventMeta(eventType = EventType.Message) +public class TikTokCaptionEvent extends TikTokHeaderEvent { + Long captionTimeStamp; - private final String iSOLanguage; + String iSOLanguage; - private final String text; + String text; public TikTokCaptionEvent(WebcastCaptionMessage msg) { super(msg.getHeader()); diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokCommentEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokCommentEvent.java index cb68495..840d7eb 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokCommentEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokCommentEvent.java @@ -1,30 +1,30 @@ package io.github.jwdeveloper.tiktok.events.messages; -import io.github.jwdeveloper.tiktok.annotations.Nullable; -import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.Picture; import io.github.jwdeveloper.tiktok.events.objects.User; import io.github.jwdeveloper.tiktok.messages.WebcastChatMessage; import io.github.jwdeveloper.tiktok.messages.WebcastRoomPinMessage; import lombok.Getter; +import lombok.Value; import java.util.ArrayList; import java.util.List; -@Getter -public class TikTokCommentEvent extends TikTokEvent -{ - @Nullable - private User user; - private final String text; - private final String language; - private final List mentionedUsers; - private final List pictures; +@Value +@EventMeta(eventType = EventType.Message) +public class TikTokCommentEvent extends TikTokHeaderEvent { + User user; + String text; + String language; + List mentionedUsers; + List pictures; public TikTokCommentEvent(WebcastRoomPinMessage.RoomPinMessageData data) { super(data.getDetails().getRoomId(), data.getDetails().getMessageId(), data.getDetails().getServerTime()); - if (data.hasSender()) - user = new User(data.getSender()); + user = User.MapOrEmpty(data.getSender()); text = data.getComment(); language = data.getLanguage(); mentionedUsers = new ArrayList<>(); @@ -33,11 +33,10 @@ public class TikTokCommentEvent extends TikTokEvent public TikTokCommentEvent(WebcastChatMessage msg) { super(msg.getHeader()); - if (msg.hasSender()) - user = new User(msg.getSender()); + user = User.MapOrEmpty(msg.getSender()); text = msg.getComment(); language = msg.getLanguage(); mentionedUsers = msg.getMentionedUsersList().stream().map(User::new).toList(); - pictures = msg.getImagesList().stream().map(e -> new Picture(e.getPicture())).toList(); + pictures = msg.getImagesList().stream().map(e -> new Picture(e.getImage())).toList(); } } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokConnectedEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokConnectedEvent.java index e9d50d7..0d5ac90 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokConnectedEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokConnectedEvent.java @@ -1,8 +1,9 @@ package io.github.jwdeveloper.tiktok.events.messages; - -import io.github.jwdeveloper.tiktok.events.TikTokEvent; - -public class TikTokConnectedEvent extends TikTokEvent +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; +import io.github.jwdeveloper.tiktok.events.base.TikTokLiveClientEvent; +@EventMeta(eventType = EventType.Control) +public class TikTokConnectedEvent extends TikTokLiveClientEvent { } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokDetectMessageEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokDetectMessageEvent.java index bd7d884..3384874 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokDetectMessageEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokDetectMessageEvent.java @@ -1,18 +1,22 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.messages.WebcastMsgDetectMessage; import lombok.Getter; import java.util.List; @Getter -public class TikTokDetectMessageEvent extends TikTokEvent { - private final String language; +@EventMeta(eventType = EventType.Message) +public class TikTokDetectMessageEvent extends TikTokHeaderEvent { + String language; - private final List data; + List data; - private final List timings; + List timings; public TikTokDetectMessageEvent(WebcastMsgDetectMessage msg) { super(msg.getHeader());; diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokDisconnectedEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokDisconnectedEvent.java index 525fa31..3f65039 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokDisconnectedEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokDisconnectedEvent.java @@ -1,6 +1,8 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; +import io.github.jwdeveloper.tiktok.events.base.TikTokLiveClientEvent; -import io.github.jwdeveloper.tiktok.events.TikTokEvent; - -public class TikTokDisconnectedEvent extends TikTokEvent { +@EventMeta(eventType = EventType.Control) +public class TikTokDisconnectedEvent extends TikTokLiveClientEvent { } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokEmoteEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokEmoteEvent.java index 28d2a2a..9738088 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokEmoteEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokEmoteEvent.java @@ -1,25 +1,23 @@ package io.github.jwdeveloper.tiktok.events.messages; -import io.github.jwdeveloper.tiktok.annotations.Nullable; -import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.Picture; import io.github.jwdeveloper.tiktok.events.objects.User; import io.github.jwdeveloper.tiktok.messages.WebcastEmoteChatMessage; -import lombok.Getter; +import lombok.Value; -@Getter -public class TikTokEmoteEvent extends TikTokEvent -{ - @Nullable - private User user; - private final String emoteId; - private final Picture picture; +@Value +@EventMeta(eventType = EventType.Message) +public class TikTokEmoteEvent extends TikTokHeaderEvent { + User user; + String emoteId; + Picture picture; public TikTokEmoteEvent(WebcastEmoteChatMessage msg) { super(msg.getHeader()); - if (msg.hasSender()) { - user = new User(msg.getSender()); - } + user = User.MapOrEmpty(msg.getSender()); emoteId = msg.getDetails().getId(); picture = new Picture(msg.getDetails().getImage().getUrl()); } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokEnvelopeEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokEnvelopeEvent.java index 3b0ae05..8ad5b61 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokEnvelopeEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokEnvelopeEvent.java @@ -1,14 +1,18 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.User; import io.github.jwdeveloper.tiktok.messages.WebcastEnvelopeMessage; import lombok.Getter; +import lombok.Value; -@Getter -public class TikTokEnvelopeEvent extends TikTokEvent { - private final User user; - +@Value +@EventMeta(eventType = EventType.Message) +public class TikTokEnvelopeEvent extends TikTokHeaderEvent { + User user; public TikTokEnvelopeEvent(WebcastEnvelopeMessage msg) { super(msg.getHeader()); user = new User(msg.getUser().getId(), msg.getUser().getUsername()); diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokErrorEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokErrorEvent.java index 20d0731..57bd973 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokErrorEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokErrorEvent.java @@ -1,12 +1,16 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokLiveClientEvent; import lombok.AllArgsConstructor; import lombok.Getter; @Getter @AllArgsConstructor -public class TikTokErrorEvent extends TikTokEvent +@EventMeta(eventType = EventType.Control) +public class TikTokErrorEvent extends TikTokLiveClientEvent { private final Throwable exception; } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokFollowEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokFollowEvent.java index f8e8236..75e0533 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokFollowEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokFollowEvent.java @@ -1,25 +1,22 @@ package io.github.jwdeveloper.tiktok.events.messages; -import io.github.jwdeveloper.tiktok.annotations.Nullable; -import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.User; import io.github.jwdeveloper.tiktok.messages.WebcastSocialMessage; -import lombok.Getter; +import lombok.Value; -@Getter -public class TikTokFollowEvent extends TikTokEvent +@Value +@EventMeta(eventType = EventType.Custom) +public class TikTokFollowEvent extends TikTokHeaderEvent { - @Nullable - private User newFollower; - private final Long totalFollowers; + User newFollower; + Long totalFollowers; public TikTokFollowEvent(WebcastSocialMessage msg) { super(msg.getHeader()); - if(msg.hasSender()) - { - newFollower = new User(msg.getSender()); - } + newFollower = User.MapOrEmpty(msg.getSender()); totalFollowers = msg.getTotalFollowers(); - } } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokGiftBroadcastEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokGiftBroadcastEvent.java index 976e29c..88873eb 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokGiftBroadcastEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokGiftBroadcastEvent.java @@ -1,27 +1,32 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.Picture; import io.github.jwdeveloper.tiktok.messages.WebcastGiftBroadcastMessage; import lombok.Getter; +import lombok.Value; -@Getter -public class TikTokGiftBroadcastEvent extends TikTokEvent +@Value +@EventMeta(eventType = EventType.Message) +public class TikTokGiftBroadcastEvent extends TikTokHeaderEvent { - private final Picture picture; + Picture picture; - private final String shortURL; + String shortURL; - private final String notifyEventType; + String notifyEventType; - private final String notifyLabel; + String notifyLabel; - private final String notifyType; + String notifyType; public TikTokGiftBroadcastEvent(WebcastGiftBroadcastMessage msg) { super(msg.getHeader()); - picture = new Picture(msg.getPicture()); + picture = new Picture(msg.getImage()); var data = msg.getData(); shortURL = data.getUri(); notifyEventType = data.getRoomNotifyMessage().getData().getType(); diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokGiftMessageEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokGiftMessageEvent.java index c07c862..505a475 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokGiftMessageEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokGiftMessageEvent.java @@ -1,41 +1,33 @@ package io.github.jwdeveloper.tiktok.events.messages; -import io.github.jwdeveloper.tiktok.annotations.Nullable; -import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.Gift; -import io.github.jwdeveloper.tiktok.events.objects.TikTokGift; import io.github.jwdeveloper.tiktok.events.objects.User; import io.github.jwdeveloper.tiktok.messages.WebcastGiftMessage; -import lombok.Getter; +import lombok.Value; -@Getter -public class TikTokGiftMessageEvent extends TikTokEvent { +@Value +@EventMeta(eventType = EventType.Message) +public class TikTokGiftMessageEvent extends TikTokHeaderEvent { - private final Gift gift; - - @Nullable - private User sender; - - private final String purchaseId; - - private final String receipt; - - private final Integer amount; - - private final Boolean streakFinished; - - private final Integer streakIndex; + Gift gift; + User sender; + String purchaseId; + String receipt; + Long comboCount; + Boolean streakFinished; + Long streakIndex; public TikTokGiftMessageEvent(WebcastGiftMessage msg) { - super(msg.getHeader()); - gift = new Gift(msg.getGiftDetails()); - if (msg.hasSender()) { - sender = new User(msg.getSender()); - } + super(msg.getCommon()); + gift = new Gift(msg.getGift()); + sender = User.MapOrEmpty(msg.getUser()); purchaseId = msg.getLogId(); - receipt = msg.getReceiptJson(); - amount = msg.getAmount(); - streakFinished = msg.getRepeatEnd(); + receipt = msg.getMonitorExtra(); + comboCount = msg.getComboCount(); + streakFinished = msg.getRepeatEnd() > 0; //todo check values streakIndex = msg.getRepeatCount(); } } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokGoalUpdateEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokGoalUpdateEvent.java index c886b0a..6794e7a 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokGoalUpdateEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokGoalUpdateEvent.java @@ -1,6 +1,9 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.Picture; import io.github.jwdeveloper.tiktok.events.objects.User; @@ -10,7 +13,8 @@ import lombok.Getter; import java.util.List; @Getter -public class TikTokGoalUpdateEvent extends TikTokEvent +@EventMeta(eventType = EventType.Message) +public class TikTokGoalUpdateEvent extends TikTokHeaderEvent { private final Long goalId; private final Picture picture; @@ -20,10 +24,10 @@ public class TikTokGoalUpdateEvent extends TikTokEvent public TikTokGoalUpdateEvent(WebcastGoalUpdateMessage msg) { super(msg.getHeader()); - picture = new Picture(msg.getPicture()); + picture = new Picture(msg.getImage()); goalId = msg.getId(); eventType = msg.getData().getType(); label = msg.getUpdateData().getLabel(); - users = msg.getUpdateData().getUsersList().stream().map(u ->new User(u.getId(),u.getNickname(),new Picture(u.getProfilePicture()))).toList(); + users = msg.getUpdateData().getUsersList().stream().map(u ->new User(u.getId(),u.getNickname(),new Picture(u.getProfileImage()))).toList(); } } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokIMDeleteEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokIMDeleteEvent.java index 6f50cbb..e9cd408 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokIMDeleteEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokIMDeleteEvent.java @@ -1,11 +1,15 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.messages.WebcastImDeleteMessage; import lombok.Getter; @Getter -public class TikTokIMDeleteEvent extends TikTokEvent { +@EventMeta(eventType = EventType.Message) +public class TikTokIMDeleteEvent extends TikTokHeaderEvent { private final byte[] data; public TikTokIMDeleteEvent(WebcastImDeleteMessage msg) { diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokInRoomBannerEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokInRoomBannerEvent.java index b088ae7..4c2aec0 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokInRoomBannerEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokInRoomBannerEvent.java @@ -1,12 +1,16 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.messages.WebcastInRoomBannerMessage; import lombok.Getter; @Getter -public class TikTokInRoomBannerEvent extends TikTokEvent { - private String jSON; +@EventMeta(eventType = EventType.Message) +public class TikTokInRoomBannerEvent extends TikTokHeaderEvent { + private final String jSON; public TikTokInRoomBannerEvent(WebcastInRoomBannerMessage msg) { super(msg.getHeader());; diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokJoinEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokJoinEvent.java index 5980ba4..240fa25 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokJoinEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokJoinEvent.java @@ -1,15 +1,16 @@ package io.github.jwdeveloper.tiktok.events.messages; -import io.github.jwdeveloper.tiktok.annotations.Nullable; -import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.User; import io.github.jwdeveloper.tiktok.messages.WebcastMemberMessage; import io.github.jwdeveloper.tiktok.messages.WebcastSocialMessage; import lombok.Getter; @Getter -public class TikTokJoinEvent extends TikTokEvent { - @Nullable +@EventMeta(eventType = EventType.Custom) +public class TikTokJoinEvent extends TikTokHeaderEvent { private User user; private final Long totalViewers; diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLikeEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLikeEvent.java index 18d473e..5d1d34e 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLikeEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLikeEvent.java @@ -1,16 +1,17 @@ package io.github.jwdeveloper.tiktok.events.messages; -import io.github.jwdeveloper.tiktok.annotations.Nullable; -import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.User; import io.github.jwdeveloper.tiktok.messages.WebcastLikeMessage; import io.github.jwdeveloper.tiktok.messages.WebcastSocialMessage; import lombok.Getter; @Getter -public class TikTokLikeEvent extends TikTokEvent +@EventMeta(eventType = EventType.Custom) +public class TikTokLikeEvent extends TikTokHeaderEvent { - @Nullable private User sender; private final Integer count; diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkLayerMessageEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkLayerMessageEvent.java index 029e502..eee5179 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkLayerMessageEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkLayerMessageEvent.java @@ -1,12 +1,16 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.messages.WebcastLinkLayerMessage; import lombok.AllArgsConstructor; import lombok.Getter; @Getter -public class TikTokLinkLayerMessageEvent extends TikTokEvent { +@EventMeta(eventType = EventType.Message) +public class TikTokLinkLayerMessageEvent extends TikTokHeaderEvent { private final Long linkId; private final LinkData link1; private final LinkData link2; diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMessageEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMessageEvent.java index 8763aaf..2373b10 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMessageEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMessageEvent.java @@ -1,7 +1,8 @@ package io.github.jwdeveloper.tiktok.events.messages; -import io.github.jwdeveloper.tiktok.annotations.Nullable; -import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.User; import io.github.jwdeveloper.tiktok.messages.WebcastLinkMessage; import lombok.Getter; @@ -9,10 +10,10 @@ import lombok.Getter; import java.util.List; @Getter -public class TikTokLinkMessageEvent extends TikTokEvent { +@EventMeta(eventType = EventType.Message) +public class TikTokLinkMessageEvent extends TikTokHeaderEvent { private final String token; - @Nullable private User user; private final List otherUsers; diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicArmiesEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicArmiesEvent.java index bc789c4..4dbf246 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicArmiesEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicArmiesEvent.java @@ -1,6 +1,9 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.LinkMicArmy; import io.github.jwdeveloper.tiktok.events.objects.Picture; import io.github.jwdeveloper.tiktok.messages.WebcastLinkMicArmies; @@ -9,7 +12,8 @@ import lombok.Getter; import java.util.List; @Getter -public class TikTokLinkMicArmiesEvent extends TikTokEvent { +@EventMeta(eventType = EventType.Message) +public class TikTokLinkMicArmiesEvent extends TikTokHeaderEvent { private final Long battleId; private final Integer battleStatus; @@ -22,7 +26,7 @@ public class TikTokLinkMicArmiesEvent extends TikTokEvent { super(msg.getHeader()); battleId = msg.getId(); armies = msg.getBattleItemsList().stream().map(LinkMicArmy::new).toList(); - picture = new Picture(msg.getPicture()); + picture = new Picture(msg.getImage()); battleStatus = msg.getBattleStatus(); } } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicBattleEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicBattleEvent.java index 0890c4c..011bdef 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicBattleEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicBattleEvent.java @@ -1,6 +1,9 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.LinkMicBattleTeam; import io.github.jwdeveloper.tiktok.messages.WebcastLinkMicBattle; import lombok.Getter; @@ -8,7 +11,8 @@ import lombok.Getter; import java.util.List; @Getter -public class TikTokLinkMicBattleEvent extends TikTokEvent { +@EventMeta(eventType = EventType.Message) +public class TikTokLinkMicBattleEvent extends TikTokHeaderEvent { private final Long battleId; private final List team1; private final List team2; diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicFanTicketEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicFanTicketEvent.java index 33a0002..f1273b8 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicFanTicketEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicFanTicketEvent.java @@ -1,11 +1,15 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.messages.WebcastLinkMicFanTicketMethod; import lombok.Getter; @Getter -public class TikTokLinkMicFanTicketEvent extends TikTokEvent { +@EventMeta(eventType = EventType.Message) +public class TikTokLinkMicFanTicketEvent extends TikTokHeaderEvent { private final Long id; private final Integer data1; private final Integer data2; diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicMethodEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicMethodEvent.java index 83dc22d..617d909 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicMethodEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicMethodEvent.java @@ -1,12 +1,16 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.messages.LinkMicMethod; import io.github.jwdeveloper.tiktok.messages.WebcastLinkMicMethod; import lombok.Getter; @Getter -public class TikTokLinkMicMethodEvent extends TikTokEvent { +@EventMeta(eventType = EventType.Message) +public class TikTokLinkMicMethodEvent extends TikTokHeaderEvent { private final String jSON; public TikTokLinkMicMethodEvent(WebcastLinkMicMethod msg) { diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLiveEndedEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLiveEndedEvent.java index 4471fc7..665c0f8 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLiveEndedEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLiveEndedEvent.java @@ -1,6 +1,8 @@ package io.github.jwdeveloper.tiktok.events.messages; - +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +@EventMeta(eventType = EventType.Custom) public class TikTokLiveEndedEvent extends TikTokEvent { } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLivePausedEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLivePausedEvent.java index 3241cce..b96726c 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLivePausedEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLivePausedEvent.java @@ -1,6 +1,9 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +@EventMeta(eventType = EventType.Custom) public class TikTokLivePausedEvent extends TikTokEvent { } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokPollMessageEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokPollMessageEvent.java index a8ce5ca..5f76f7b 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokPollMessageEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokPollMessageEvent.java @@ -1,6 +1,9 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.PollOption; import io.github.jwdeveloper.tiktok.events.objects.User; import io.github.jwdeveloper.tiktok.messages.WebcastPollMessage; @@ -9,7 +12,8 @@ import lombok.Getter; import java.util.List; @Getter -public class TikTokPollMessageEvent extends TikTokEvent { +@EventMeta(eventType = EventType.Message) +public class TikTokPollMessageEvent extends TikTokHeaderEvent { private final Long id; private final PollOption option1; diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokQuestionEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokQuestionEvent.java index 6d97696..c3322b4 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokQuestionEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokQuestionEvent.java @@ -1,12 +1,16 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.User; import io.github.jwdeveloper.tiktok.messages.WebcastQuestionNewMessage; import lombok.Getter; @Getter -public class TikTokQuestionEvent extends TikTokEvent { +@EventMeta(eventType = EventType.Message) +public class TikTokQuestionEvent extends TikTokHeaderEvent { private final Long questionId; private final String text; diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRankTextEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRankTextEvent.java index 957a916..bc39336 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRankTextEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRankTextEvent.java @@ -1,14 +1,18 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.messages.WebcastRankTextMessage; import lombok.Getter; @Getter -public class TikTokRankTextEvent extends TikTokEvent { - private String eventType; +@EventMeta(eventType = EventType.Message) +public class TikTokRankTextEvent extends TikTokHeaderEvent { + private final String eventType; - private String label; + private final String label; public TikTokRankTextEvent(WebcastRankTextMessage msg) { diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRankUpdateEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRankUpdateEvent.java index 36d54bc..7962cf5 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRankUpdateEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRankUpdateEvent.java @@ -1,12 +1,16 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.messages.WebcastHourlyRankMessage; import io.github.jwdeveloper.tiktok.messages.WebcastRankUpdateMessage; import lombok.Getter; @Getter -public class TikTokRankUpdateEvent extends TikTokEvent { +@EventMeta(eventType = EventType.Message) +public class TikTokRankUpdateEvent extends TikTokHeaderEvent { private final String eventType; private final String label; diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRoomMessageEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRoomMessageEvent.java index af978a0..3140cfd 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRoomMessageEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRoomMessageEvent.java @@ -1,7 +1,8 @@ package io.github.jwdeveloper.tiktok.events.messages; -import io.github.jwdeveloper.tiktok.annotations.Nullable; -import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.User; import io.github.jwdeveloper.tiktok.messages.RoomMessage; import io.github.jwdeveloper.tiktok.messages.SystemMessage; @@ -10,10 +11,9 @@ import io.github.jwdeveloper.tiktok.messages.WebcastRoomMessage; import lombok.Getter; @Getter -public class TikTokRoomMessageEvent extends TikTokEvent { - @Nullable +@EventMeta(eventType = EventType.Message) +public class TikTokRoomMessageEvent extends TikTokHeaderEvent { private User host; - @Nullable private String hostLanguage; private final String message; diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRoomPinMessageEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRoomPinMessageEvent.java index f7ee735..659ab39 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRoomPinMessageEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRoomPinMessageEvent.java @@ -1,11 +1,15 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.messages.WebcastRoomPinMessage; import lombok.Getter; @Getter -public class TikTokRoomPinMessageEvent extends TikTokEvent { +@EventMeta(eventType = EventType.Message) +public class TikTokRoomPinMessageEvent extends TikTokHeaderEvent { private final Long pinTimeStamp; private final TikTokCommentEvent comment; diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRoomViewerDataEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRoomViewerDataEvent.java index a15d54c..52dcb8b 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRoomViewerDataEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRoomViewerDataEvent.java @@ -1,6 +1,9 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.TopViewer; import io.github.jwdeveloper.tiktok.messages.WebcastRoomUserSeqMessage; import lombok.Getter; @@ -8,7 +11,8 @@ import lombok.Getter; import java.util.List; @Getter -public class TikTokRoomViewerDataEvent extends TikTokEvent { +@EventMeta(eventType = EventType.Message) +public class TikTokRoomViewerDataEvent extends TikTokHeaderEvent { private final Integer viewerCount; private final List topViewers; diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokShareEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokShareEvent.java index 2fe5080..c70192c 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokShareEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokShareEvent.java @@ -1,31 +1,28 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.User; import io.github.jwdeveloper.tiktok.messages.WebcastSocialMessage; import lombok.Getter; @Getter -public class TikTokShareEvent extends TikTokEvent { - private User user; - - private Integer amount; +@EventMeta(eventType = EventType.Custom) +public class TikTokShareEvent extends TikTokHeaderEvent { + private final User user; + private final Integer amount; public TikTokShareEvent(WebcastSocialMessage msg, Integer amount) { super(msg.getHeader());; - if(msg.hasSender()) - { - user = new User(msg.getSender()); - } + user = User.MapOrEmpty(msg.getSender()); this.amount = amount; } public TikTokShareEvent(WebcastSocialMessage msg) { super(msg.getHeader()); - if(msg.hasSender()) - { - user = new User(msg.getSender()); - } + user = User.MapOrEmpty(msg.getSender()); amount = 1; } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokShopMessageEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokShopMessageEvent.java index 62e383b..aa01872 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokShopMessageEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokShopMessageEvent.java @@ -1,12 +1,16 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.Picture; import io.github.jwdeveloper.tiktok.messages.WebcastOecLiveShoppingMessage; import lombok.Getter; @Getter -public class TikTokShopMessageEvent extends TikTokEvent { +@EventMeta(eventType = EventType.Message) +public class TikTokShopMessageEvent extends TikTokHeaderEvent { private final String title; private final String price; diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokSubNotifyEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokSubNotifyEvent.java index 298ce1a..ede35a8 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokSubNotifyEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokSubNotifyEvent.java @@ -1,12 +1,16 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.User; import io.github.jwdeveloper.tiktok.messages.WebcastSubNotifyMessage; import lombok.Getter; @Getter -public class TikTokSubNotifyEvent extends TikTokEvent { +@EventMeta(eventType = EventType.Message) +public class TikTokSubNotifyEvent extends TikTokHeaderEvent { private User user; public TikTokSubNotifyEvent(WebcastSubNotifyMessage msg) { diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokSubscribeEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokSubscribeEvent.java index 7a3f792..0f5a924 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokSubscribeEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokSubscribeEvent.java @@ -1,12 +1,16 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.events.objects.User; import io.github.jwdeveloper.tiktok.messages.WebcastMemberMessage; import lombok.Getter; @Getter -public class TikTokSubscribeEvent extends TikTokEvent { +@EventMeta(eventType = EventType.Custom) +public class TikTokSubscribeEvent extends TikTokHeaderEvent { private User newSubscriber; public TikTokSubscribeEvent(WebcastMemberMessage msg) { diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnauthorizedMemberEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnauthorizedMemberEvent.java index 8ca9075..5a97696 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnauthorizedMemberEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnauthorizedMemberEvent.java @@ -1,12 +1,16 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokHeaderEvent; import io.github.jwdeveloper.tiktok.messages.WebcastUnauthorizedMemberMessage; import lombok.AllArgsConstructor; import lombok.Getter; @Getter -public class TikTokUnauthorizedMemberEvent extends TikTokEvent { +@EventMeta(eventType = EventType.Message) +public class TikTokUnauthorizedMemberEvent extends TikTokHeaderEvent { private final String data; private final UnauthorizedMemberData event; diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledControlEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledControlEvent.java index 3704279..390cdfd 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledControlEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledControlEvent.java @@ -1,13 +1,18 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokUnhandledEvent; import io.github.jwdeveloper.tiktok.messages.WebcastControlMessage; import lombok.AllArgsConstructor; import lombok.Getter; @Getter -@AllArgsConstructor -public class TikTokUnhandledControlEvent extends TikTokEvent { +@EventMeta(eventType = EventType.Custom) +public class TikTokUnhandledControlEvent extends TikTokUnhandledEvent { - private final WebcastControlMessage message; + public TikTokUnhandledControlEvent(WebcastControlMessage data) { + super(data); + } } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledEvent.java deleted file mode 100644 index 9045111..0000000 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledEvent.java +++ /dev/null @@ -1,14 +0,0 @@ -package io.github.jwdeveloper.tiktok.events.messages; - -import io.github.jwdeveloper.tiktok.events.TikTokEvent; -import io.github.jwdeveloper.tiktok.messages.WebcastResponse; -import lombok.AllArgsConstructor; -import lombok.Getter; - - -@Getter -@AllArgsConstructor -public class TikTokUnhandledEvent extends TikTokEvent -{ - private final WebcastResponse.Message message; -} diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledMemberEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledMemberEvent.java index 5478d15..ecdd893 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledMemberEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledMemberEvent.java @@ -1,13 +1,18 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokUnhandledEvent; import io.github.jwdeveloper.tiktok.messages.WebcastMemberMessage; import lombok.AllArgsConstructor; import lombok.Getter; @Getter -@AllArgsConstructor -public class TikTokUnhandledMemberEvent extends TikTokEvent +@EventMeta(eventType = EventType.Message) +public class TikTokUnhandledMemberEvent extends TikTokUnhandledEvent { - private final WebcastMemberMessage message; + public TikTokUnhandledMemberEvent(WebcastMemberMessage data) { + super(data); + } } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledSocialEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledSocialEvent.java index c92b5fb..a400cad 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledSocialEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledSocialEvent.java @@ -1,13 +1,19 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokUnhandledEvent; +import io.github.jwdeveloper.tiktok.messages.WebcastMemberMessage; import io.github.jwdeveloper.tiktok.messages.WebcastSocialMessage; import lombok.AllArgsConstructor; import lombok.Getter; @Getter -@AllArgsConstructor -public class TikTokUnhandledSocialEvent extends TikTokEvent +@EventMeta(eventType = EventType.Custom) +public class TikTokUnhandledSocialEvent extends TikTokUnhandledEvent { - private final WebcastSocialMessage message; + public TikTokUnhandledSocialEvent(WebcastSocialMessage data) { + super(data); + } } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledWebsocketMessageEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledWebsocketMessageEvent.java new file mode 100644 index 0000000..bdd7e40 --- /dev/null +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledWebsocketMessageEvent.java @@ -0,0 +1,19 @@ +package io.github.jwdeveloper.tiktok.events.messages; + +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; +import io.github.jwdeveloper.tiktok.events.TikTokEvent; +import io.github.jwdeveloper.tiktok.events.base.TikTokUnhandledEvent; +import io.github.jwdeveloper.tiktok.messages.WebcastResponse; +import lombok.AllArgsConstructor; +import lombok.Getter; + + +@Getter +@EventMeta(eventType = EventType.Message) +public class TikTokUnhandledWebsocketMessageEvent extends TikTokUnhandledEvent +{ + public TikTokUnhandledWebsocketMessageEvent(WebcastResponse.Message data) { + super(data); + } +} diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokWebsocketMessageEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokWebsocketMessageEvent.java index b77b607..5808ebc 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokWebsocketMessageEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokWebsocketMessageEvent.java @@ -1,16 +1,20 @@ package io.github.jwdeveloper.tiktok.events.messages; +import io.github.jwdeveloper.tiktok.annotations.EventMeta; +import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.events.TikTokEvent; import io.github.jwdeveloper.tiktok.messages.WebcastResponse; import lombok.AllArgsConstructor; import lombok.Data; +import lombok.Getter; /** * Happens when TikTok websocket receive message from server */ -@Data +@Getter @AllArgsConstructor +@EventMeta(eventType = EventType.Custom) public class TikTokWebsocketMessageEvent extends TikTokEvent { private TikTokEvent event; diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/Badge.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/Badge.java index f80bb2d..d0c03ec 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/Badge.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/Badge.java @@ -1,41 +1,77 @@ package io.github.jwdeveloper.tiktok.events.objects; -import lombok.AllArgsConstructor; -import lombok.Getter; +import io.github.jwdeveloper.tiktok.messages.BadgeStruct; +import lombok.Value; +import java.util.ArrayList; import java.util.List; -@Getter +@Value public class Badge { - private ComboBadge comboBadges; - private final List textBadges; - private final List imageBadges; + ComboBadge comboBadges; + List textBadges; + List imageBadges; - public Badge(io.github.jwdeveloper.tiktok.messages.Badge badge) { - textBadges = badge.getTextBadgesList().stream().map(b -> new TextBadge(b.getType(), b.getName())).toList(); - imageBadges = badge.getImageBadgesList().stream().map(b -> new ImageBadge(b.getDisplayType(), new Picture(b.getImage()))).toList(); - comboBadges = new ComboBadge(new Picture("badge.getComplexBadge().getImageUrl()"), badge.getComplexBadge().getData()); + public Badge(ComboBadge comboBadges, List textBadges, List imageBadges) { + this.comboBadges = comboBadges; + this.textBadges = textBadges; + this.imageBadges = imageBadges; } - - @AllArgsConstructor - @Getter - public class TextBadge { - private final String type; - private final String name; + public Badge(io.github.jwdeveloper.tiktok.messages.BadgeStruct badge) + { + comboBadges = ComboBadge.map(badge.getCombine()); + textBadges = TextBadge.mapAll(badge.getTextList()); + imageBadges = ImageBadge.mapAll(badge.getImageList()); } - @AllArgsConstructor - @Getter - public class ImageBadge { - private final Integer displayType; - private final Picture image; + @Value + public static class TextBadge { + EnumValue type; + String name; + + public static TextBadge map(BadgeStruct.TextBadge input) { + return new TextBadge(EnumValue.Map(input.getDisplayType()),input.getKey()); + } + public static List mapAll(List list) { + return list.stream().map(TextBadge::map).toList(); + } } - @AllArgsConstructor - @Getter - public class ComboBadge { - private final Picture image; - private final String data; + @Value + public static class ImageBadge { + EnumValue displayType; + Picture image; + + public static ImageBadge map(BadgeStruct.ImageBadge input) { + return new ImageBadge(EnumValue.Map(input.getDisplayType()), Picture.Map(input.getImage())); + } + public static List mapAll(List list) { + return list.stream().map(ImageBadge::map).toList(); + } + } + + @Value + public static class ComboBadge { + Picture image; + String data; + + public static ComboBadge map(BadgeStruct.CombineBadge input) { + return new ComboBadge(Picture.Map(input.getIcon()),input.getStr()); + } + public static List mapAll(List list) { + return list.stream().map(ComboBadge::map).toList(); + } + } + + public static Badge Empty() { + var comboBadge = new ComboBadge(Picture.Empty(), ""); + var textBadges = new ArrayList(); + var imageBadges = new ArrayList(); + return new Badge(comboBadge, textBadges, imageBadges); + } + + public static List EmptyList() { + return new ArrayList(); } } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/BarrageData.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/BarrageData.java index a32ac3a..449d2d0 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/BarrageData.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/BarrageData.java @@ -2,14 +2,15 @@ package io.github.jwdeveloper.tiktok.events.objects; import lombok.AllArgsConstructor; import lombok.Getter; +import lombok.Value; import java.util.List; -@Getter +@Value public class BarrageData { - private final String eventType; - private final String label; - private final List users; + String eventType; + String label; + List users; public BarrageData(String eventType, String label, List users) { @@ -18,12 +19,11 @@ public class BarrageData { this.users = users; } - @Getter - @AllArgsConstructor - public static final class BarrageUser + @Value + public static class BarrageUser { - private final User user; + User user; - private final String data; + String data; } } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/EnumValue.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/EnumValue.java new file mode 100644 index 0000000..e9ce817 --- /dev/null +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/EnumValue.java @@ -0,0 +1,15 @@ +package io.github.jwdeveloper.tiktok.events.objects; + +import lombok.Value; + +@Value +public class EnumValue +{ + public int value; + public String name; + + public static EnumValue Map(Enum _enum) + { + return new EnumValue(_enum.ordinal() ,_enum.name()); + } +} diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/Gift.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/Gift.java index f1f0bad..e550286 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/Gift.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/Gift.java @@ -1,27 +1,22 @@ package io.github.jwdeveloper.tiktok.events.objects; -import lombok.Getter; +import lombok.Value; -@Getter +@Value public class Gift { - private final Long id; + Long id; + String name; + String description; + Integer diamondCost; + Integer type; + Picture picture; - private final String name; - - private final String description; - - private final Integer diamondCost; - - private final Integer type; - - private final Picture picture; - - public Gift(io.github.jwdeveloper.tiktok.messages.Gift gift) { + public Gift(io.github.jwdeveloper.tiktok.messages.GiftStruct gift) { id = gift.getId(); name = gift.getName(); - description = gift.getDescription(); - diamondCost = gift.getCoinCount(); - type = gift.getGiftType(); + description = gift.getDescribe(); + diamondCost = gift.getDiamondCount(); + type = gift.getType(); picture = new Picture(gift.getImage()); } } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/LinkMicArmy.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/LinkMicArmy.java index c402e06..28ce279 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/LinkMicArmy.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/LinkMicArmy.java @@ -1,31 +1,28 @@ package io.github.jwdeveloper.tiktok.events.objects; import io.github.jwdeveloper.tiktok.messages.LinkMicArmiesItems; -import lombok.AllArgsConstructor; -import lombok.Getter; +import lombok.Value; import java.util.List; -@Getter +@Value public class LinkMicArmy { - private final Long armyId; - private final List armies; + Long armyId; + List armies; public LinkMicArmy(LinkMicArmiesItems army) { armyId = army.getHostUserId(); armies = army.getBattleGroupsList() .stream() - .map(x -> new Army(x.getUsersList() - .stream() - .map(User::new).toList(), x.getPoints())) + .map(x -> new Army(x.getUsersList().stream().map(User::MapOrEmpty).toList(), x.getPoints())) + + .toList(); } - - @Getter - @AllArgsConstructor - public final class Army { - private final List Users; - private final Integer Points; + @Value + public static class Army { + List Users; + Integer Points; } } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/LinkMicBattleTeam.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/LinkMicBattleTeam.java index f46975a..6432a0f 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/LinkMicBattleTeam.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/LinkMicBattleTeam.java @@ -3,13 +3,14 @@ package io.github.jwdeveloper.tiktok.events.objects; import io.github.jwdeveloper.tiktok.messages.WebcastLinkMicBattle; import lombok.Getter; +import lombok.Value; import java.util.List; -@Getter +@Value public class LinkMicBattleTeam { - private final Long teamId; - private final List users; + Long teamId; + List users; public LinkMicBattleTeam(WebcastLinkMicBattle.LinkMicBattleTeam team) { this.teamId = team.getId(); 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 1048a6b..f375cad 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 @@ -1,19 +1,20 @@ package io.github.jwdeveloper.tiktok.events.objects; import lombok.Getter; +import lombok.Value; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; -@Getter +@Value public class Picture { - public final List urls; + List urls; - public Picture(io.github.jwdeveloper.tiktok.messages.Picture profilePicture) { - this.urls = profilePicture.getUrlsList(); + public Picture(io.github.jwdeveloper.tiktok.messages.Image profilePicture) { + this.urls = profilePicture.getUrlListList(); } - public Picture(List urls) { this.urls = urls; } @@ -22,4 +23,29 @@ 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) + { + return new Picture(profilePicture.getUrlListList()); + } + + public static Picture Empty() + { + return new Picture(); + } + + public static List EmptyList() + { + return new ArrayList(); + } } diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/PollOption.java b/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/PollOption.java index d5b30a7..326328b 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/PollOption.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/events/objects/PollOption.java @@ -2,18 +2,17 @@ package io.github.jwdeveloper.tiktok.events.objects; import lombok.AllArgsConstructor; import lombok.Getter; +import lombok.Value; import java.util.List; -@Getter -@AllArgsConstructor +@Value public class PollOption { private final User user; private final List