From ffbd67eef499efc7a9848f89f0f8c0e2f4cea432 Mon Sep 17 00:00:00 2001 From: JW Date: Wed, 28 Feb 2024 16:05:25 +0100 Subject: [PATCH] made: settings.fetchGifts default to true, attach to options `setOffline` create static method `of` for events -TikTokGiftEvent -TikTokCommentEvent -TikTokSubscribeEvent -TikTokFollowEvent -TikTokLikeEvent -TikTokJoinEvent Rename: GiftSendType -> GiftComboStateType --- .../events/gift/TikTokGiftComboEvent.java | 18 ++++++++++--- ...tSendType.java => GiftComboStateType.java} | 11 ++++---- .../handlers/TikTokGiftEventHandler.java | 24 +++++++++--------- .../events/TikTokGiftEventHandlerTest.java | 9 +++---- .../Events_And_Gifts_Testing_Example.java | 25 +++++++++---------- 5 files changed, 48 insertions(+), 39 deletions(-) rename API/src/main/java/io/github/jwdeveloper/tiktok/data/models/gifts/{GiftSendType.java => GiftComboStateType.java} (83%) diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/gift/TikTokGiftComboEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/gift/TikTokGiftComboEvent.java index ea5eb18..6736566 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/gift/TikTokGiftComboEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/gift/TikTokGiftComboEvent.java @@ -23,6 +23,7 @@ package io.github.jwdeveloper.tiktok.data.events.gift; import io.github.jwdeveloper.tiktok.annotations.*; +import io.github.jwdeveloper.tiktok.data.models.Picture; import io.github.jwdeveloper.tiktok.data.models.gifts.*; import io.github.jwdeveloper.tiktok.data.models.users.User; import io.github.jwdeveloper.tiktok.messages.webcast.WebcastGiftMessage; @@ -32,7 +33,7 @@ import lombok.Getter; /** * Triggered every time gift is sent * - * @see GiftSendType it has 3 states + * @see GiftComboStateType it has 3 states * *

Example when user sends gift with combo

*

>Combo: 1 -> comboState = GiftSendType.Begin

@@ -45,10 +46,21 @@ import lombok.Getter; @EventMeta(eventType = EventType.Message) @Getter public class TikTokGiftComboEvent extends TikTokGiftEvent { - private final GiftSendType comboState; + private final GiftComboStateType comboState; - public TikTokGiftComboEvent(Gift gift, User host, WebcastGiftMessage msg, GiftSendType comboState) { + public TikTokGiftComboEvent(Gift gift, User host, WebcastGiftMessage msg, GiftComboStateType comboState) { super(gift, host, msg); this.comboState = comboState; } + + public static TikTokGiftComboEvent of(Gift gift, int combo, GiftComboStateType comboState) { + return new TikTokGiftComboEvent( + gift, + new User(0L, "Test", new Picture("")), + WebcastGiftMessage + .newBuilder() + .setComboCount(combo) + .build(), + comboState); + } } \ No newline at end of file diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/data/models/gifts/GiftSendType.java b/API/src/main/java/io/github/jwdeveloper/tiktok/data/models/gifts/GiftComboStateType.java similarity index 83% rename from API/src/main/java/io/github/jwdeveloper/tiktok/data/models/gifts/GiftSendType.java rename to API/src/main/java/io/github/jwdeveloper/tiktok/data/models/gifts/GiftComboStateType.java index c14c82b..c084189 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/data/models/gifts/GiftSendType.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/data/models/gifts/GiftComboStateType.java @@ -22,17 +22,16 @@ */ package io.github.jwdeveloper.tiktok.data.models.gifts; -public enum GiftSendType -{ +//TODO it should be called GiftComboStateType +public enum GiftComboStateType { Finished, Begin, Active; - public static GiftSendType fromNumber(long number) - { + public static GiftComboStateType fromNumber(long number) { return switch ((int) number) { - case 1, 2, 4 -> GiftSendType.Active; - default -> GiftSendType.Finished; + case 1, 2, 4 -> GiftComboStateType.Active; + default -> GiftComboStateType.Finished; }; } } \ No newline at end of file diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/mappers/handlers/TikTokGiftEventHandler.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/mappers/handlers/TikTokGiftEventHandler.java index 899e13f..0547994 100644 --- a/Client/src/main/java/io/github/jwdeveloper/tiktok/mappers/handlers/TikTokGiftEventHandler.java +++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/mappers/handlers/TikTokGiftEventHandler.java @@ -58,40 +58,40 @@ public class TikTokGiftEventHandler { public List handleGift(WebcastGiftMessage currentMessage) { var userId = currentMessage.getUser().getId(); - var currentType = GiftSendType.fromNumber(currentMessage.getSendType()); + var currentType = GiftComboStateType.fromNumber(currentMessage.getSendType()); var containsPreviousMessage = giftsMessages.containsKey(userId); //If gift is not streakable just return onGift event if (currentMessage.getGift().getType() != 1) { - var comboEvent = getGiftComboEvent(currentMessage, GiftSendType.Finished); + var comboEvent = getGiftComboEvent(currentMessage, GiftComboStateType.Finished); var giftEvent = getGiftEvent(currentMessage); return List.of(comboEvent, giftEvent); } if (!containsPreviousMessage) { - if (currentType == GiftSendType.Finished) { + if (currentType == GiftComboStateType.Finished) { return List.of(getGiftEvent(currentMessage)); } else { giftsMessages.put(userId, currentMessage); - return List.of(getGiftComboEvent(currentMessage, GiftSendType.Begin)); + return List.of(getGiftComboEvent(currentMessage, GiftComboStateType.Begin)); } } var previousMessage = giftsMessages.get(userId); - var previousType = GiftSendType.fromNumber(previousMessage.getSendType()); - if (currentType == GiftSendType.Active && - previousType == GiftSendType.Active) { + var previousType = GiftComboStateType.fromNumber(previousMessage.getSendType()); + if (currentType == GiftComboStateType.Active && + previousType == GiftComboStateType.Active) { giftsMessages.put(userId, currentMessage); - return List.of(getGiftComboEvent(currentMessage, GiftSendType.Active)); + return List.of(getGiftComboEvent(currentMessage, GiftComboStateType.Active)); } - if (currentType == GiftSendType.Finished && - previousType == GiftSendType.Active) { + if (currentType == GiftComboStateType.Finished && + previousType == GiftComboStateType.Active) { giftsMessages.clear(); return List.of( - getGiftComboEvent(currentMessage, GiftSendType.Finished), + getGiftComboEvent(currentMessage, GiftComboStateType.Finished), getGiftEvent(currentMessage)); } @@ -104,7 +104,7 @@ public class TikTokGiftEventHandler { return new TikTokGiftEvent(gift, tikTokRoomInfo.getHost(), message); } - private TikTokGiftEvent getGiftComboEvent(WebcastGiftMessage message, GiftSendType state) { + private TikTokGiftEvent getGiftComboEvent(WebcastGiftMessage message, GiftComboStateType state) { var gift = getGiftObject(message); return new TikTokGiftComboEvent(gift, tikTokRoomInfo.getHost(), message, state); } diff --git a/Client/src/test/java/io/github/jwdeveloper/tiktok/handlers/events/TikTokGiftEventHandlerTest.java b/Client/src/test/java/io/github/jwdeveloper/tiktok/handlers/events/TikTokGiftEventHandlerTest.java index b77ca91..51d7c97 100644 --- a/Client/src/test/java/io/github/jwdeveloper/tiktok/handlers/events/TikTokGiftEventHandlerTest.java +++ b/Client/src/test/java/io/github/jwdeveloper/tiktok/handlers/events/TikTokGiftEventHandlerTest.java @@ -27,7 +27,7 @@ import io.github.jwdeveloper.tiktok.data.events.gift.TikTokGiftComboEvent; import io.github.jwdeveloper.tiktok.data.events.gift.TikTokGiftEvent; import io.github.jwdeveloper.tiktok.data.models.Picture; import io.github.jwdeveloper.tiktok.data.models.gifts.Gift; -import io.github.jwdeveloper.tiktok.data.models.gifts.GiftSendType; +import io.github.jwdeveloper.tiktok.data.models.gifts.GiftComboStateType; import io.github.jwdeveloper.tiktok.gifts.TikTokGiftsManager; import io.github.jwdeveloper.tiktok.mappers.handlers.TikTokGiftEventHandler; import io.github.jwdeveloper.tiktok.messages.data.GiftStruct; @@ -40,7 +40,6 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.TestInstance; import java.util.List; -import java.util.logging.Logger; @TestInstance(TestInstance.Lifecycle.PER_CLASS) @@ -99,9 +98,9 @@ class TikTokGiftEventHandlerTest { Assertions.assertEquals(2, result3.size()); var event3 = (TikTokGiftComboEvent) result3.get(0); - Assertions.assertEquals(GiftSendType.Begin, event1.getComboState()); - Assertions.assertEquals(GiftSendType.Active, event2.getComboState()); - Assertions.assertEquals(GiftSendType.Finished, event3.getComboState()); + Assertions.assertEquals(GiftComboStateType.Begin, event1.getComboState()); + Assertions.assertEquals(GiftComboStateType.Active, event2.getComboState()); + Assertions.assertEquals(GiftComboStateType.Finished, event3.getComboState()); } diff --git a/Examples/src/main/java/io/github/jwdeveloper/tiktok/Events_And_Gifts_Testing_Example.java b/Examples/src/main/java/io/github/jwdeveloper/tiktok/Events_And_Gifts_Testing_Example.java index 306d1ee..5771026 100644 --- a/Examples/src/main/java/io/github/jwdeveloper/tiktok/Events_And_Gifts_Testing_Example.java +++ b/Examples/src/main/java/io/github/jwdeveloper/tiktok/Events_And_Gifts_Testing_Example.java @@ -3,15 +3,16 @@ package io.github.jwdeveloper.tiktok; import io.github.jwdeveloper.tiktok.data.events.TikTokCommentEvent; import io.github.jwdeveloper.tiktok.data.events.TikTokSubNotifyEvent; import io.github.jwdeveloper.tiktok.data.events.TikTokSubscribeEvent; +import io.github.jwdeveloper.tiktok.data.events.gift.TikTokGiftComboEvent; import io.github.jwdeveloper.tiktok.data.events.gift.TikTokGiftEvent; import io.github.jwdeveloper.tiktok.data.events.social.TikTokFollowEvent; import io.github.jwdeveloper.tiktok.data.events.social.TikTokJoinEvent; import io.github.jwdeveloper.tiktok.data.events.social.TikTokLikeEvent; +import io.github.jwdeveloper.tiktok.data.models.gifts.GiftComboStateType; import io.github.jwdeveloper.tiktok.live.LiveClient; public class Events_And_Gifts_Testing_Example { - public static void main(String[] args) - { + public static void main(String[] args) { LiveClient client = TikTokLive.newClient(ConnectionExample.TIKTOK_HOSTNAME) .configure(liveClientSettings -> { @@ -28,17 +29,19 @@ public class Events_And_Gifts_Testing_Example { }) .onGiftCombo((liveClient, event) -> { - liveClient.getLogger().info("Connected"); + liveClient.getLogger().info("New fake combo Gift: " + event.getGift()); }) .onGift((liveClient, event) -> { - liveClient.getLogger().info("New fakeGift: " + event.getGift()); + liveClient.getLogger().info("New fake Gift: " + event.getGift()); }) - .buildAndConnect(); + .build(); var gifts = TikTokLive.gifts(); - var fakeGift = TikTokGiftEvent.of(gifts.getByName("Rose")); - fakeGift = TikTokGiftEvent.of("Rose", 1, 23); + var roseGift = gifts.getByName("Rose"); + + var fakeGift = TikTokGiftEvent.of(roseGift); + var fakeComboGift = TikTokGiftComboEvent.of(roseGift, 12, GiftComboStateType.Begin); var fakeMessage = TikTokCommentEvent.of("Mark", "Hello world"); @@ -47,8 +50,10 @@ public class Events_And_Gifts_Testing_Example { var fakeLike = TikTokLikeEvent.of("Mark", 12); var fakeJoin = TikTokJoinEvent.of("Mark"); + client.connect(); client.publishEvent(fakeGift); + client.publishEvent(fakeComboGift); client.publishEvent(fakeMessage); client.publishEvent(fakeSubscriber); client.publishEvent(fakeFollow); @@ -59,10 +64,4 @@ public class Events_And_Gifts_Testing_Example { } - - - - public void GetBuilder() { - - } }