mirror of
https://github.com/jwdeveloper/TikTokLiveJava.git
synced 2026-02-27 08:49:40 -05:00
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
This commit is contained in:
@@ -23,6 +23,7 @@
|
|||||||
package io.github.jwdeveloper.tiktok.data.events.gift;
|
package io.github.jwdeveloper.tiktok.data.events.gift;
|
||||||
|
|
||||||
import io.github.jwdeveloper.tiktok.annotations.*;
|
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.gifts.*;
|
||||||
import io.github.jwdeveloper.tiktok.data.models.users.User;
|
import io.github.jwdeveloper.tiktok.data.models.users.User;
|
||||||
import io.github.jwdeveloper.tiktok.messages.webcast.WebcastGiftMessage;
|
import io.github.jwdeveloper.tiktok.messages.webcast.WebcastGiftMessage;
|
||||||
@@ -32,7 +33,7 @@ import lombok.Getter;
|
|||||||
/**
|
/**
|
||||||
* Triggered every time gift is sent
|
* Triggered every time gift is sent
|
||||||
*
|
*
|
||||||
* @see GiftSendType it has 3 states
|
* @see GiftComboStateType it has 3 states
|
||||||
*
|
*
|
||||||
* <p>Example when user sends gift with combo</p>
|
* <p>Example when user sends gift with combo</p>
|
||||||
* <p>>Combo: 1 -> comboState = GiftSendType.Begin</p>
|
* <p>>Combo: 1 -> comboState = GiftSendType.Begin</p>
|
||||||
@@ -45,10 +46,21 @@ import lombok.Getter;
|
|||||||
@EventMeta(eventType = EventType.Message)
|
@EventMeta(eventType = EventType.Message)
|
||||||
@Getter
|
@Getter
|
||||||
public class TikTokGiftComboEvent extends TikTokGiftEvent {
|
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);
|
super(gift, host, msg);
|
||||||
this.comboState = comboState;
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -22,17 +22,16 @@
|
|||||||
*/
|
*/
|
||||||
package io.github.jwdeveloper.tiktok.data.models.gifts;
|
package io.github.jwdeveloper.tiktok.data.models.gifts;
|
||||||
|
|
||||||
public enum GiftSendType
|
//TODO it should be called GiftComboStateType
|
||||||
{
|
public enum GiftComboStateType {
|
||||||
Finished,
|
Finished,
|
||||||
Begin,
|
Begin,
|
||||||
Active;
|
Active;
|
||||||
|
|
||||||
public static GiftSendType fromNumber(long number)
|
public static GiftComboStateType fromNumber(long number) {
|
||||||
{
|
|
||||||
return switch ((int) number) {
|
return switch ((int) number) {
|
||||||
case 1, 2, 4 -> GiftSendType.Active;
|
case 1, 2, 4 -> GiftComboStateType.Active;
|
||||||
default -> GiftSendType.Finished;
|
default -> GiftComboStateType.Finished;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -58,40 +58,40 @@ public class TikTokGiftEventHandler {
|
|||||||
|
|
||||||
public List<TikTokEvent> handleGift(WebcastGiftMessage currentMessage) {
|
public List<TikTokEvent> handleGift(WebcastGiftMessage currentMessage) {
|
||||||
var userId = currentMessage.getUser().getId();
|
var userId = currentMessage.getUser().getId();
|
||||||
var currentType = GiftSendType.fromNumber(currentMessage.getSendType());
|
var currentType = GiftComboStateType.fromNumber(currentMessage.getSendType());
|
||||||
var containsPreviousMessage = giftsMessages.containsKey(userId);
|
var containsPreviousMessage = giftsMessages.containsKey(userId);
|
||||||
|
|
||||||
|
|
||||||
//If gift is not streakable just return onGift event
|
//If gift is not streakable just return onGift event
|
||||||
if (currentMessage.getGift().getType() != 1) {
|
if (currentMessage.getGift().getType() != 1) {
|
||||||
var comboEvent = getGiftComboEvent(currentMessage, GiftSendType.Finished);
|
var comboEvent = getGiftComboEvent(currentMessage, GiftComboStateType.Finished);
|
||||||
var giftEvent = getGiftEvent(currentMessage);
|
var giftEvent = getGiftEvent(currentMessage);
|
||||||
return List.of(comboEvent, giftEvent);
|
return List.of(comboEvent, giftEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!containsPreviousMessage) {
|
if (!containsPreviousMessage) {
|
||||||
if (currentType == GiftSendType.Finished) {
|
if (currentType == GiftComboStateType.Finished) {
|
||||||
return List.of(getGiftEvent(currentMessage));
|
return List.of(getGiftEvent(currentMessage));
|
||||||
} else {
|
} else {
|
||||||
giftsMessages.put(userId, currentMessage);
|
giftsMessages.put(userId, currentMessage);
|
||||||
return List.of(getGiftComboEvent(currentMessage, GiftSendType.Begin));
|
return List.of(getGiftComboEvent(currentMessage, GiftComboStateType.Begin));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var previousMessage = giftsMessages.get(userId);
|
var previousMessage = giftsMessages.get(userId);
|
||||||
var previousType = GiftSendType.fromNumber(previousMessage.getSendType());
|
var previousType = GiftComboStateType.fromNumber(previousMessage.getSendType());
|
||||||
if (currentType == GiftSendType.Active &&
|
if (currentType == GiftComboStateType.Active &&
|
||||||
previousType == GiftSendType.Active) {
|
previousType == GiftComboStateType.Active) {
|
||||||
giftsMessages.put(userId, currentMessage);
|
giftsMessages.put(userId, currentMessage);
|
||||||
return List.of(getGiftComboEvent(currentMessage, GiftSendType.Active));
|
return List.of(getGiftComboEvent(currentMessage, GiftComboStateType.Active));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (currentType == GiftSendType.Finished &&
|
if (currentType == GiftComboStateType.Finished &&
|
||||||
previousType == GiftSendType.Active) {
|
previousType == GiftComboStateType.Active) {
|
||||||
giftsMessages.clear();
|
giftsMessages.clear();
|
||||||
return List.of(
|
return List.of(
|
||||||
getGiftComboEvent(currentMessage, GiftSendType.Finished),
|
getGiftComboEvent(currentMessage, GiftComboStateType.Finished),
|
||||||
getGiftEvent(currentMessage));
|
getGiftEvent(currentMessage));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -104,7 +104,7 @@ public class TikTokGiftEventHandler {
|
|||||||
return new TikTokGiftEvent(gift, tikTokRoomInfo.getHost(), message);
|
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);
|
var gift = getGiftObject(message);
|
||||||
return new TikTokGiftComboEvent(gift, tikTokRoomInfo.getHost(), message, state);
|
return new TikTokGiftComboEvent(gift, tikTokRoomInfo.getHost(), message, state);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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.events.gift.TikTokGiftEvent;
|
||||||
import io.github.jwdeveloper.tiktok.data.models.Picture;
|
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.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.gifts.TikTokGiftsManager;
|
||||||
import io.github.jwdeveloper.tiktok.mappers.handlers.TikTokGiftEventHandler;
|
import io.github.jwdeveloper.tiktok.mappers.handlers.TikTokGiftEventHandler;
|
||||||
import io.github.jwdeveloper.tiktok.messages.data.GiftStruct;
|
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 org.junit.jupiter.api.TestInstance;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Logger;
|
|
||||||
|
|
||||||
|
|
||||||
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
||||||
@@ -99,9 +98,9 @@ class TikTokGiftEventHandlerTest {
|
|||||||
Assertions.assertEquals(2, result3.size());
|
Assertions.assertEquals(2, result3.size());
|
||||||
var event3 = (TikTokGiftComboEvent) result3.get(0);
|
var event3 = (TikTokGiftComboEvent) result3.get(0);
|
||||||
|
|
||||||
Assertions.assertEquals(GiftSendType.Begin, event1.getComboState());
|
Assertions.assertEquals(GiftComboStateType.Begin, event1.getComboState());
|
||||||
Assertions.assertEquals(GiftSendType.Active, event2.getComboState());
|
Assertions.assertEquals(GiftComboStateType.Active, event2.getComboState());
|
||||||
Assertions.assertEquals(GiftSendType.Finished, event3.getComboState());
|
Assertions.assertEquals(GiftComboStateType.Finished, event3.getComboState());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,15 +3,16 @@ package io.github.jwdeveloper.tiktok;
|
|||||||
import io.github.jwdeveloper.tiktok.data.events.TikTokCommentEvent;
|
import io.github.jwdeveloper.tiktok.data.events.TikTokCommentEvent;
|
||||||
import io.github.jwdeveloper.tiktok.data.events.TikTokSubNotifyEvent;
|
import io.github.jwdeveloper.tiktok.data.events.TikTokSubNotifyEvent;
|
||||||
import io.github.jwdeveloper.tiktok.data.events.TikTokSubscribeEvent;
|
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.gift.TikTokGiftEvent;
|
||||||
import io.github.jwdeveloper.tiktok.data.events.social.TikTokFollowEvent;
|
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.TikTokJoinEvent;
|
||||||
import io.github.jwdeveloper.tiktok.data.events.social.TikTokLikeEvent;
|
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;
|
import io.github.jwdeveloper.tiktok.live.LiveClient;
|
||||||
|
|
||||||
public class Events_And_Gifts_Testing_Example {
|
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)
|
LiveClient client = TikTokLive.newClient(ConnectionExample.TIKTOK_HOSTNAME)
|
||||||
.configure(liveClientSettings ->
|
.configure(liveClientSettings ->
|
||||||
{
|
{
|
||||||
@@ -28,17 +29,19 @@ public class Events_And_Gifts_Testing_Example {
|
|||||||
})
|
})
|
||||||
.onGiftCombo((liveClient, event) ->
|
.onGiftCombo((liveClient, event) ->
|
||||||
{
|
{
|
||||||
liveClient.getLogger().info("Connected");
|
liveClient.getLogger().info("New fake combo Gift: " + event.getGift());
|
||||||
})
|
})
|
||||||
.onGift((liveClient, event) ->
|
.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 gifts = TikTokLive.gifts();
|
||||||
var fakeGift = TikTokGiftEvent.of(gifts.getByName("Rose"));
|
var roseGift = gifts.getByName("Rose");
|
||||||
fakeGift = TikTokGiftEvent.of("Rose", 1, 23);
|
|
||||||
|
var fakeGift = TikTokGiftEvent.of(roseGift);
|
||||||
|
var fakeComboGift = TikTokGiftComboEvent.of(roseGift, 12, GiftComboStateType.Begin);
|
||||||
|
|
||||||
var fakeMessage = TikTokCommentEvent.of("Mark", "Hello world");
|
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 fakeLike = TikTokLikeEvent.of("Mark", 12);
|
||||||
var fakeJoin = TikTokJoinEvent.of("Mark");
|
var fakeJoin = TikTokJoinEvent.of("Mark");
|
||||||
|
|
||||||
|
client.connect();
|
||||||
|
|
||||||
client.publishEvent(fakeGift);
|
client.publishEvent(fakeGift);
|
||||||
|
client.publishEvent(fakeComboGift);
|
||||||
client.publishEvent(fakeMessage);
|
client.publishEvent(fakeMessage);
|
||||||
client.publishEvent(fakeSubscriber);
|
client.publishEvent(fakeSubscriber);
|
||||||
client.publishEvent(fakeFollow);
|
client.publishEvent(fakeFollow);
|
||||||
@@ -59,10 +64,4 @@ public class Events_And_Gifts_Testing_Example {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void GetBuilder() {
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user