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() {
-
- }
}