diff --git a/README.md b/README.md
index c4a1f7f..61cd6e4 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@ A Java library based on [TikTokLive](https://github.com/isaackogan/TikTokLive) a
Join the support [discord](https://discord.gg/e2XwPNTBBr) and visit the `#java-support` channel for questions, contributions and ideas. Feel free to make pull requests with missing/new features, fixes, etc
Do you prefer other programming languages?
-- **Node** orginal: [TikTok-Live-Connector](https://github.com/zerodytrash/TikTok-Live-Connector) by [@zerodytrash](https://github.com/zerodytrash)
+- **Node** orginal: [TikTok-Live-Connector](https://github.com/isaackogan/TikTok-Live-Connector) by [@zerodytrash](https://github.com/zerodytrash)
- **Python** rewrite: [TikTokLive](https://github.com/isaackogan/TikTokLive) by [@isaackogan](https://github.com/isaackogan)
- **Go** rewrite: [GoTikTokLive](https://github.com/Davincible/gotiktoklive) by [@Davincible](https://github.com/Davincible)
- **C#** rewrite: [TikTokLiveSharp](https://github.com/frankvHoof93/TikTokLiveSharp) by [@frankvHoof93](https://github.com/frankvHoof93)
@@ -37,7 +37,7 @@ Do you prefer other programming languages?
com.github.jwdeveloper.TikTok-Live-Java
Client
- 0.0.25-Release
+ NOT_FOUND
compile
@@ -51,226 +51,607 @@ Do you prefer other programming languages?
2. Create your first chat connection
```java
+
package io.github.jwdeveloper.tiktok;
-import java.io.IOException;
-public class SimpleExample {
- public static void main(String[] args) throws IOException {
-
- // set tiktok username
- TikTokLive.newClient(Main.TEST_TIKTOK_USER)
- .configure(clientSettings ->
- {
-
- })
- .onFollow((liveClient, event) ->
- {
- System.out.println("Follow joined -> " + event.getNewFollower().getNickName());
- })
- .onConnected((client, event) ->
- {
- System.out.println("Connected");
- })
- .onJoin((client, event) ->
- {
- System.out.println("User joined -> " + event.getUser().getNickName());
- })
- .onComment((client, event) ->
- {
- System.out.println(event.getUser().getUniqueId() + ": " + event.getText());
- })
- .onEvent((client, event) ->
- {
- System.out.println("Viewers count: "+client.getRoomInfo().getViewersCount());
- })
- .onError((client, event) ->
- {
- event.getException().printStackTrace();
- })
- .buildAndRun();
- System.in.read();
- }
-}
-
-```
-## Configuration
-
-```java
-package io.github.jwdeveloper.tiktok;
+import io.github.jwdeveloper.tiktok.utils.ConsoleColors;
import java.io.IOException;
import java.time.Duration;
import java.util.logging.Level;
-public class ConfigurationExample {
+public class SimpleExample
+{
+ public static String TIKTOK_HOSTNAME = "szwagierkaqueen";
public static void main(String[] args) throws IOException {
- TikTokLive.newClient(Main.TEST_TIKTOK_USER)
+ showLogo();
+ // set tiktok username
+ TikTokLive.newClient(SimpleExample.TIKTOK_HOSTNAME)
.configure(clientSettings ->
{
- clientSettings.setHostName(Main.TEST_TIKTOK_USER); // TikTok user name
+ clientSettings.setHostName(SimpleExample.TIKTOK_HOSTNAME); // This method is useful in case you want change hostname later
clientSettings.setClientLanguage("en"); // Language
clientSettings.setTimeout(Duration.ofSeconds(2)); // Connection timeout
clientSettings.setLogLevel(Level.ALL); // Log level
- clientSettings.setDownloadGiftInfo(true); // Downloading meta information about gifts. You can access it by client.getGiftManager().getGiftsInfo();
- clientSettings.setPrintMessageData(true); // Printing TikTok Protocol buffer messages in Base64 format
clientSettings.setPrintToConsole(true); // Printing all logs to console even if log level is Level.OFF
- clientSettings.setHandleExistingMessagesOnConnect(true); // Invokes all TikTok events that had occurred before connection
+ clientSettings.setHandleExistingEvents(true); // Invokes all TikTok events that had occurred before connection
clientSettings.setRetryOnConnectionFailure(true); // Reconnecting if TikTok user is offline
clientSettings.setRetryConnectionTimeout(Duration.ofSeconds(1)); // Timeout before next reconnection
//Optional: Sometimes not every message from chat are send to TikTokLiveJava to fix this issue you can set sessionId
// documentation how to obtain sessionId https://github.com/isaackogan/TikTok-Live-Connector#send-chat-messages
- clientSettings.setSessionId("86c3c8bf4b17ebb2d74bb7fa66fd0000");
+
+ // clientSettings.setSessionId("86c3c8bf4b17ebb2d74bb7fa66fd0000");
//Optional:
- clientSettings.setRoomId("XXXXXXXXXXXXXXXXX");
+ //RoomId can be used as an override if you're having issues with HostId.
+ //You can find it in the HTML for the livestream-page
+
+ //clientSettings.setRoomId("XXXXXXXXXXXXXXXXX");
})
- .buildAndRun();
+ .onGift((liveClient, event) ->
+ {
+ switch (event.getGift()) {
+ case ROSE -> print(ConsoleColors.RED, "Rose!");
+ case GG -> print(ConsoleColors.YELLOW, " GOOD GAME!");
+ case TIKTOK -> print(ConsoleColors.CYAN,"Thanks for TikTok");
+ default -> print(ConsoleColors.GREEN, "[Thanks for gift] ", ConsoleColors.YELLOW, event.getGift().getName(), "x", event.getCombo());
+ }
+ })
+ .onGiftCombo((liveClient, event) ->
+ {
+ print(ConsoleColors.RED,"GIFT COMBO",event.getGift().getName(),event.getCombo());
+ })
+ .onConnected((client, event) ->
+ {
+ print(ConsoleColors.GREEN, "[Connected]");
+ })
+ .onDisconnected((liveClient, event) ->
+ {
+ print(ConsoleColors.RED,"[Disconnected]");
+ })
+ .onFollow((liveClient, event) ->
+ {
+ print(ConsoleColors.BLUE, "Follow:", ConsoleColors.WHITE_BRIGHT, event.getUser().getName());
+ })
+ .onJoin((client, event) ->
+ {
+ print(ConsoleColors.WHITE, "Join:", ConsoleColors.WHITE_BRIGHT, event.getUser().getName());
+ })
+ .onComment((client, event) ->
+ {
+ print(ConsoleColors.GREEN, event.getUser().getName(), ":", ConsoleColors.WHITE_BRIGHT, event.getText());
+ })
+ .onEvent((client, event) ->
+ {
+ //System.out.println("Event: " +event.getClass().getSimpleName());
+ })
+ .onError((client, event) ->
+ {
+ event.getException().printStackTrace();
+ })
+ .buildAndConnectAsync();
System.in.read();
}
+
+ private static void print(Object... messages) {
+ var sb = new StringBuilder();
+ for (var message : messages) {
+ sb.append(message).append(" ");
+ }
+ System.out.println(sb);
+ }
+
+ private static void showLogo()
+ {
+ System.out.println(ConsoleColors.GREEN+"""
+
+ _____ _ _ _____ _ _ _ s
+ |_ _(_) | _|_ _|__ | | _| | (_)_ _____s
+ | | | | |/ / | |/ _ \| |/ / | | \ \ / / _ \
+ | | | | < | | (_) | <| |___| |\ V / __/
+ |_| |_|_|\_\ |_|\___/|_|\_\_____|_| \_/ \___|
+ """);
+
+ }
}
```
+## Events
+
+
+
+**Control**:
+
+- [onReconnecting](#onreconnecting-tiktokreconnectingevent)
+- [onDisconnected](#ondisconnected-tiktokdisconnectedevent)
+- [onConnected](#onconnected-tiktokconnectedevent)
+- [onError](#onerror-tiktokerrorevent)
+
+**Message**:
+
+- [onEvent](#onevent-tiktokevent)
+- [onLiveEnded](#onliveended-tiktokliveendedevent)
+- [onShare](#onshare-tiktokshareevent)
+- [onEmote](#onemote-tiktokemoteevent)
+- [onComment](#oncomment-tiktokcommentevent)
+- [onLike](#onlike-tiktoklikeevent)
+- [onRoom](#onroom-tiktokroomevent)
+- [onJoin](#onjoin-tiktokjoinevent)
+- [onUnhandledSocial](#onunhandledsocial-tiktokunhandledsocialevent)
+- [onRoomUserInfo](#onroomuserinfo-tiktokroomuserinfoevent)
+- [onQuestion](#onquestion-tiktokquestionevent)
+- [onSubscribe](#onsubscribe-tiktoksubscribeevent)
+- [onLivePaused](#onlivepaused-tiktoklivepausedevent)
+- [onGiftCombo](#ongiftcombo-tiktokgiftcomboevent)
+- [onGift](#ongift-tiktokgiftevent)
+- [onFollow](#onfollow-tiktokfollowevent)
+
+**Debug**:
+
+- [onWebsocketUnhandledMessage](#onwebsocketunhandledmessage-tiktokwebsocketunhandledmessageevent)
+- [onWebsocketResponse](#onwebsocketresponse-tiktokwebsocketresponseevent)
+- [onWebsocketMessage](#onwebsocketmessage-tiktokwebsocketmessageevent)
+# Examples
+
+
+
+#### onReconnecting [TikTokReconnectingEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+
+```java
+TikTokLive.newClient("host-name")
+.onReconnecting((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onDisconnected [TikTokDisconnectedEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+Triggered when the connection gets disconnected. In that case you can call connect() again to have a reconnect logic.
+Note that you should wait a little bit before attempting a reconnect to to avoid being rate-limited.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onDisconnected((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onConnected [TikTokConnectedEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+Triggered when the connection is successfully established.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onConnected((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onError [TikTokErrorEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+General error event. You should handle this.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onError((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onEvent [TikTokEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+Base class for all events
+
+
+```java
+TikTokLive.newClient("host-name")
+.onEvent((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onLiveEnded [TikTokLiveEndedEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+Triggered when the live stream gets terminated by the host. Will also trigger the TikTokDisconnectedEvent event.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onLiveEnded((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onShare [TikTokShareEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+Triggers when a user shares the stream. Based on social event.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onShare((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onEmote [TikTokEmoteEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+Triggered every time a subscriber sends an emote (sticker).
+
+
+```java
+TikTokLive.newClient("host-name")
+.onEmote((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onComment [TikTokCommentEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+Triggered every time a new chat comment arrives.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onComment((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onLike [TikTokLikeEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+Triggered when a viewer sends likes to the streamer. For streams with many viewers, this event is not always triggered by TikTok.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onLike((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onRoom [TikTokRoomEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+
+```java
+TikTokLive.newClient("host-name")
+.onRoom((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onJoin [TikTokJoinEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+
+```java
+TikTokLive.newClient("host-name")
+.onJoin((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onUnhandledSocial [TikTokUnhandledSocialEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+
+```java
+TikTokLive.newClient("host-name")
+.onUnhandledSocial((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onRoomUserInfo [TikTokRoomUserInfoEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+ Only top 5 users in ranking has detailed data
+ rest has only ID
+
+
+```java
+TikTokLive.newClient("host-name")
+.onRoomUserInfo((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onQuestion [TikTokQuestionEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+Triggered every time someone asks a new question via the question feature.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onQuestion((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onSubscribe [TikTokSubscribeEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+Triggers when a user creates a subscription.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onSubscribe((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onLivePaused [TikTokLivePausedEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+
+```java
+TikTokLive.newClient("host-name")
+.onLivePaused((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onGiftCombo [TikTokGiftComboEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+
+```java
+TikTokLive.newClient("host-name")
+.onGiftCombo((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onGift [TikTokGiftEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+Triggered every time a gift arrives.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onGift((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onFollow [TikTokFollowEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+Triggers when a user follows the streamer. Based on social event.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onFollow((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onWebsocketUnhandledMessage [TikTokWebsocketUnhandledMessageEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+Triggered every time a protobuf encoded webcast message arrives. You can deserialize the binary object depending on the use case.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onWebsocketUnhandledMessage((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onWebsocketResponse [TikTokWebsocketResponseEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+
+```java
+TikTokLive.newClient("host-name")
+.onWebsocketResponse((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+#### onWebsocketMessage [TikTokWebsocketMessageEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages.java)
+
+
+Triggered every time a protobuf encoded webcast message arrives. You can deserialize the binary object depending on the use case.
+
+
+```java
+TikTokLive.newClient("host-name")
+.onWebsocketMessage((liveClient, event) ->
+{
+
+})
+.buildAndConnect();
+```
+
+
+
+
+
+
+
+
## Listener Example
```java
-package io.github.jwdeveloper.tiktok;
-
-import io.github.jwdeveloper.tiktok.annotations.TikTokEventHandler;
-import io.github.jwdeveloper.tiktok.data.events.common.TikTokEvent;
-import io.github.jwdeveloper.tiktok.data.events.TikTokCommentEvent;
-import io.github.jwdeveloper.tiktok.data.events.TikTokErrorEvent;
-import io.github.jwdeveloper.tiktok.data.events.TikTokGiftMessageEvent;
-import io.github.jwdeveloper.tiktok.data.events.social.TikTokLikeEvent;
-import io.github.jwdeveloper.tiktok.listener.TikTokEventListener;
-import io.github.jwdeveloper.tiktok.live.LiveClient;
-
-import java.io.IOException;
-
-public class ListenerExample {
- public static void main(String[] args) throws IOException {
-
- CustomListener customListener = new CustomListener();
-
- // set tiktok username
- var client = TikTokLive.newClient(Main.TEST_TIKTOK_USER)
- .addListener(customListener)
- .buildAndRun();
-
- 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 {
-
- @TikTokEventHandler
- public void onLike(LiveClient liveClient, TikTokLikeEvent event) {
- System.out.println(event.toString());
- }
-
- @TikTokEventHandler
- public void onError(LiveClient liveClient, TikTokErrorEvent event) {
- System.out.println(event.getException().getMessage());
- }
-
- @TikTokEventHandler
- public void onCommentMessage(LiveClient liveClient, TikTokCommentEvent event) {
- System.out.println(event.getText());
- }
-
- @TikTokEventHandler
- public void onGiftMessage(LiveClient liveClient, TikTokGiftMessageEvent event) {
- System.out.println(event.getGift().getDescription());
- }
-
- @TikTokEventHandler
- public void onAnyEvent(LiveClient liveClient, TikTokEvent event) {
- System.out.println(event.getClass().getSimpleName());
- }
-
- }
-}
-
+{{listener-content}}
```
-## Methods
-A `client (LiveClient)` object contains the following methods.
-
-
-
-| Method Name | Description |
-|---------------------| ----------- |
-| connect | Connects to the live stream. |
-| disconnect | Disconnects the connection. |
-| getGiftManager | Gets the meta informations about all gifts. |
-| getRoomInfo | Gets the current room info from TikTok API including streamer info, room status and statistics. |
-| getListenersManager | Gets and manage TikTokEventListeners |
-## Events
-
-A `TikTokLive` object has the following events
-
-
-**Message**:
-- [TikTokLinkMicFanTicketEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicFanTicketEvent.java)
-- [TikTokEnvelopeEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokEnvelopeEvent.java)
-- [TikTokShopMessageEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokShopMessageEvent.java)
-- [TikTokDetectMessageEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokDetectMessageEvent.java)
-- [TikTokLinkLayerMessageEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkLayerMessageEvent.java)
-- [TikTokCaptionEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokCaptionEvent.java)
-- [TikTokQuestionEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokQuestionEvent.java)
-- [TikTokRoomPinMessageEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRoomPinMessageEvent.java)
-- [TikTokRoomMessageEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRoomMessageEvent.java)
-- [TikTokLinkMessageEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMessageEvent.java)
-- [TikTokBarrageMessageEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokBarrageMessageEvent.java)
-- [TikTokGiftMessageEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokGiftMessageEvent.java)
-- [TikTokLinkMicArmiesEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicArmiesEvent.java)
-- [TikTokEmoteEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokEmoteEvent.java)
-- [TikTokUnauthorizedMemberEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnauthorizedMemberEvent.java)
-- [TikTokInRoomBannerEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokInRoomBannerEvent.java)
-- [TikTokLinkMicMethodEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicMethodEvent.java)
-- [TikTokPollMessageEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokPollMessageEvent.java)
-- [TikTokRoomViewerDataEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRoomViewerDataEvent.java)
-- [TikTokGoalUpdateEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokGoalUpdateEvent.java)
-- [TikTokCommentEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokCommentEvent.java)
-- [TikTokRankUpdateEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRankUpdateEvent.java)
-- [TikTokIMDeleteEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokIMDeleteEvent.java)
-- [TikTokRankTextEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokRankTextEvent.java)
-- [TikTokUnhandledMemberEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledMemberEvent.java)
-- [TikTokSubNotifyEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokSubNotifyEvent.java)
-- [TikTokLinkMicBattleEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLinkMicBattleEvent.java)
-- [TikTokGiftBroadcastEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokGiftBroadcastEvent.java)
-- [TikTokUnhandledWebsocketMessageEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledWebsocketMessageEvent.java)
-
-**Control**:
-- [TikTokConnectedEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokConnectedEvent.java)
-- [TikTokReconnectingEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokReconnectingEvent.java)
-- [TikTokErrorEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokErrorEvent.java)
-- [TikTokDisconnectedEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokDisconnectedEvent.java)
-
-**Custom**:
-- [TikTokHeaderEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokHeaderEvent.java)
-- [TikTokUnhandledSocialEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledSocialEvent.java)
-- [TikTokLivePausedEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLivePausedEvent.java)
-- [TikTokLikeEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLikeEvent.java)
-- [TikTokWebsocketMessageEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokWebsocketMessageEvent.java)
-- [TikTokSubscribeEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokSubscribeEvent.java)
-- [TikTokFollowEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokFollowEvent.java)
-- [TikTokLiveClientEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLiveClientEvent.java)
-- [TikTokUnhandledEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledEvent.java)
-- [TikTokLiveEndedEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokLiveEndedEvent.java)
-- [TikTokJoinEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokJoinEvent.java)
-- [TikTokShareEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokShareEvent.java)
-- [TikTokUnhandledControlEvent](https://github.com/jwdeveloper/TikTok-Live-Java/blob/master/API/src/main/java/io/github/jwdeveloper/tiktok/events/messages/TikTokUnhandledControlEvent.java)
-
-
-
-
## Contributing
Your improvements are welcome! Feel free to open an issue or pull request.