Including toUser in TikTokGiftEvent

This commit is contained in:
JW
2023-12-19 21:31:58 +01:00
parent 4979c1b27a
commit 0bb8edfe5c
5 changed files with 29 additions and 20 deletions

View File

@@ -26,6 +26,7 @@ import io.github.jwdeveloper.tiktok.annotations.EventMeta;
import io.github.jwdeveloper.tiktok.annotations.EventType; import io.github.jwdeveloper.tiktok.annotations.EventType;
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.GiftSendType;
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;
import lombok.Getter; import lombok.Getter;
@@ -40,7 +41,7 @@ import lombok.Getter;
* <p>Combo: 4 -> comboState = GiftSendType.Active</p> * <p>Combo: 4 -> comboState = GiftSendType.Active</p>
* <p>Combo: 8 -> comboState = GiftSendType.Active</p> * <p>Combo: 8 -> comboState = GiftSendType.Active</p>
* <p>Combo: 12 -> comboState = GiftSendType.Finsihed</p> * <p>Combo: 12 -> comboState = GiftSendType.Finsihed</p>
* * <p>
* Remember if comboState is Finsihed both TikTokGiftComboEvent and TikTokGiftEvent event gets triggered * Remember if comboState is Finsihed both TikTokGiftComboEvent and TikTokGiftEvent event gets triggered
*/ */
@EventMeta(eventType = EventType.Message) @EventMeta(eventType = EventType.Message)
@@ -48,8 +49,8 @@ import lombok.Getter;
public class TikTokGiftComboEvent extends TikTokGiftEvent { public class TikTokGiftComboEvent extends TikTokGiftEvent {
private final GiftSendType comboState; private final GiftSendType comboState;
public TikTokGiftComboEvent(Gift gift, WebcastGiftMessage msg, GiftSendType comboState) { public TikTokGiftComboEvent(Gift gift, User host, WebcastGiftMessage msg, GiftSendType comboState) {
super(gift, msg); super(gift, host, msg);
this.comboState = comboState; this.comboState = comboState;
} }
} }

View File

@@ -49,11 +49,15 @@ public class TikTokGiftEvent extends TikTokHeaderEvent {
private final User toUser; private final User toUser;
private final int combo; private final int combo;
public TikTokGiftEvent(Gift gift, WebcastGiftMessage msg) { public TikTokGiftEvent(Gift gift, User liveHost, WebcastGiftMessage msg) {
super(msg.getCommon()); super(msg.getCommon());
this.gift = gift; this.gift = gift;
user = User.map(msg.getUser(), msg.getUserIdentity()); user = User.map(msg.getUser(), msg.getUserIdentity());
toUser = new User(msg.getUserGiftReciever().getUserId(), "", "", new Picture(""), 0, 0, new ArrayList<>()); if (msg.getToUser().getNickname().isEmpty()) {
toUser = liveHost;
} else {
toUser = User.map(msg.getToUser());
}
combo = msg.getComboCount(); combo = msg.getComboCount();
} }
} }

View File

@@ -68,6 +68,7 @@ message WebcastGiftMessage {
int32 repeatCount = 5; int32 repeatCount = 5;
int32 comboCount = 6; int32 comboCount = 6;
User user = 7; User user = 7;
User toUser = 8;
int32 repeatEnd = 9; int32 repeatEnd = 9;
int64 groupId = 11; int64 groupId = 11;
int64 incomeTaskgifts = 12; int64 incomeTaskgifts = 12;

View File

@@ -192,7 +192,7 @@ public class TikTokLiveClientBuilder implements LiveClientBuilder {
//ConnectionEvents events //ConnectionEvents events
var commonHandler = new TikTokCommonEventHandler(); var commonHandler = new TikTokCommonEventHandler();
var giftHandler = new TikTokGiftEventHandler(giftManager); var giftHandler = new TikTokGiftEventHandler(giftManager, roomInfo);
var roomInfoHandler = new TikTokRoomInfoEventHandler(roomInfo); var roomInfoHandler = new TikTokRoomInfoEventHandler(roomInfo);
var socialHandler = new TikTokSocialMediaEventHandler(roomInfo); var socialHandler = new TikTokSocialMediaEventHandler(roomInfo);

View File

@@ -22,6 +22,7 @@
*/ */
package io.github.jwdeveloper.tiktok.mappers.handlers; package io.github.jwdeveloper.tiktok.mappers.handlers;
import io.github.jwdeveloper.tiktok.TikTokRoomInfo;
import io.github.jwdeveloper.tiktok.data.events.common.TikTokEvent; import io.github.jwdeveloper.tiktok.data.events.common.TikTokEvent;
import io.github.jwdeveloper.tiktok.data.events.gift.TikTokGiftComboEvent; 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;
@@ -43,10 +44,12 @@ import java.util.Map;
public class TikTokGiftEventHandler { public class TikTokGiftEventHandler {
private final GiftManager giftManager; private final GiftManager giftManager;
private final Map<Long, WebcastGiftMessage> giftsMessages; private final Map<Long, WebcastGiftMessage> giftsMessages;
private final TikTokRoomInfo tikTokRoomInfo;
public TikTokGiftEventHandler(GiftManager giftManager) { public TikTokGiftEventHandler(GiftManager giftManager, TikTokRoomInfo tikTokRoomInfo) {
this.giftManager = giftManager; this.giftManager = giftManager;
giftsMessages = new HashMap<>(); giftsMessages = new HashMap<>();
this.tikTokRoomInfo = tikTokRoomInfo;
} }
@SneakyThrows @SneakyThrows
@@ -101,12 +104,12 @@ public class TikTokGiftEventHandler {
private TikTokGiftEvent getGiftEvent(WebcastGiftMessage message) { private TikTokGiftEvent getGiftEvent(WebcastGiftMessage message) {
var gift = getGiftObject(message); var gift = getGiftObject(message);
return new TikTokGiftEvent(gift, message); return new TikTokGiftEvent(gift, tikTokRoomInfo.getHost(), message);
} }
private TikTokGiftEvent getGiftComboEvent(WebcastGiftMessage message, GiftSendType state) { private TikTokGiftEvent getGiftComboEvent(WebcastGiftMessage message, GiftSendType state) {
var gift = getGiftObject(message); var gift = getGiftObject(message);
return new TikTokGiftComboEvent(gift, message, state); return new TikTokGiftComboEvent(gift, tikTokRoomInfo.getHost(), message, state);
} }
private Gift getGiftObject(WebcastGiftMessage giftMessage) { private Gift getGiftObject(WebcastGiftMessage giftMessage) {