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 cbc81ca..385fb55 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
@@ -26,6 +26,7 @@ import io.github.jwdeveloper.tiktok.annotations.EventMeta;
import io.github.jwdeveloper.tiktok.annotations.EventType;
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.users.User;
import io.github.jwdeveloper.tiktok.messages.webcast.WebcastGiftMessage;
import lombok.Getter;
@@ -40,7 +41,7 @@ import lombok.Getter;
*
Combo: 4 -> comboState = GiftSendType.Active
* Combo: 8 -> comboState = GiftSendType.Active
* Combo: 12 -> comboState = GiftSendType.Finsihed
- *
+ *
* Remember if comboState is Finsihed both TikTokGiftComboEvent and TikTokGiftEvent event gets triggered
*/
@EventMeta(eventType = EventType.Message)
@@ -48,8 +49,8 @@ import lombok.Getter;
public class TikTokGiftComboEvent extends TikTokGiftEvent {
private final GiftSendType comboState;
- public TikTokGiftComboEvent(Gift gift, WebcastGiftMessage msg, GiftSendType comboState) {
- super(gift, msg);
+ public TikTokGiftComboEvent(Gift gift, User host, WebcastGiftMessage msg, GiftSendType comboState) {
+ super(gift, host, msg);
this.comboState = comboState;
}
}
diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/gift/TikTokGiftEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/gift/TikTokGiftEvent.java
index b8db670..0fff54c 100644
--- a/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/gift/TikTokGiftEvent.java
+++ b/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/gift/TikTokGiftEvent.java
@@ -49,11 +49,15 @@ public class TikTokGiftEvent extends TikTokHeaderEvent {
private final User toUser;
private final int combo;
- public TikTokGiftEvent(Gift gift, WebcastGiftMessage msg) {
+ public TikTokGiftEvent(Gift gift, User liveHost, WebcastGiftMessage msg) {
super(msg.getCommon());
this.gift = gift;
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();
}
}
\ No newline at end of file
diff --git a/API/src/main/proto/webcast.proto b/API/src/main/proto/webcast.proto
index e05ba29..afc3791 100644
--- a/API/src/main/proto/webcast.proto
+++ b/API/src/main/proto/webcast.proto
@@ -18,7 +18,7 @@ message WebcastPushFrame {
uint64 LogId = 2;
uint64 Service = 3;
uint64 Method = 4;
- map headers = 5;
+ map headers = 5;
string PayloadEncoding = 6;
string PayloadType = 7;
bytes Payload = 8;
@@ -68,6 +68,7 @@ message WebcastGiftMessage {
int32 repeatCount = 5;
int32 comboCount = 6;
User user = 7;
+ User toUser = 8;
int32 repeatEnd = 9;
int64 groupId = 11;
int64 incomeTaskgifts = 12;
@@ -84,8 +85,8 @@ message WebcastGiftMessage {
message UserGiftReciever
{
- int64 userId =1;
- string deviceName = 10;
+ int64 userId = 1;
+ string deviceName = 10;
}
message GiftIMPriority {
@@ -203,7 +204,7 @@ message WebcastChatMessage {
int32 quickChatScene = 16;
int32 communityFlaggedStatus = 17;
UserIdentity UserIdentity = 18;
- map CommentQualityScores = 19;
+ map CommentQualityScores = 19;
// @EmoteWithIndex
// proto.webcast.im.ChatMessage
@@ -283,14 +284,14 @@ message WebcastGoalUpdateMessage {
int64 contributorId = 4;
Image contributorAvatar = 5;
string contributorDisplayId = 6;
-// SubGoal contributeSubgoal = 7;
+ // SubGoal contributeSubgoal = 7;
int64 contributeCount = 9;
int64 contributeScore = 10;
int64 giftRepeatCount = 11;
string contributorIdStr = 12;
bool pin = 13;
bool unpin = 14;
- // GoalPinInfo pinInfo = 15;
+ // GoalPinInfo pinInfo = 15;
}
// Message related to Chat-moderation?
@@ -354,7 +355,7 @@ message WebcastSocialMessage {
message WebcastSubNotifyMessage {
Common common = 1;
User user = 2;
-// ExhibitionType exhibitionType = 3; // Enum
+ // ExhibitionType exhibitionType = 3; // Enum
int64 subMonth = 4;
SubscribeType subscribeType = 5; // Enum
OldSubscribeStatus oldSubscribeStatus = 6; // Enum
@@ -681,7 +682,7 @@ message WebcastMsgDetectMessage {
bool detectP2PMsg = 3;
bool detectRoomMsg = 4;
bool httpOptimize = 5;
-}
+ }
}
//@WebcastOecLiveShoppingMessage
@@ -751,11 +752,11 @@ message WebcastLinkMessage {
LinkerUpdateUserSettingContent UpdateUserSettingContent = 18;
LinkerMicIdxUpdateContent MicIdxUpdateContent = 19;
LinkerListChangeContent ListChangeContent = 20;
- // CohostListChangeContent CohostListChangeContent = 21;
+ // CohostListChangeContent CohostListChangeContent = 21;
LinkerMediaChangeContent MediaChangeContent = 22;
LinkerAcceptNoticeContent ReplyAcceptNoticeContent = 23;
LinkerSysKickOutContent SysKickOutContent = 101;
- // LinkmicUserToastContent UserToastContent = 102;
+ // LinkmicUserToastContent UserToastContent = 102;
string Extra = 200;
int64 ExpireTimestamp = 201;
string TransferExtra = 202;
diff --git a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveClientBuilder.java b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveClientBuilder.java
index 0fc314f..17c7191 100644
--- a/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveClientBuilder.java
+++ b/Client/src/main/java/io/github/jwdeveloper/tiktok/TikTokLiveClientBuilder.java
@@ -192,7 +192,7 @@ public class TikTokLiveClientBuilder implements LiveClientBuilder {
//ConnectionEvents events
var commonHandler = new TikTokCommonEventHandler();
- var giftHandler = new TikTokGiftEventHandler(giftManager);
+ var giftHandler = new TikTokGiftEventHandler(giftManager, roomInfo);
var roomInfoHandler = new TikTokRoomInfoEventHandler(roomInfo);
var socialHandler = new TikTokSocialMediaEventHandler(roomInfo);
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 9667abd..b9b5a1e 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
@@ -22,6 +22,7 @@
*/
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.gift.TikTokGiftComboEvent;
import io.github.jwdeveloper.tiktok.data.events.gift.TikTokGiftEvent;
@@ -43,17 +44,19 @@ import java.util.Map;
public class TikTokGiftEventHandler {
private final GiftManager giftManager;
private final Map giftsMessages;
+ private final TikTokRoomInfo tikTokRoomInfo;
- public TikTokGiftEventHandler(GiftManager giftManager) {
+ public TikTokGiftEventHandler(GiftManager giftManager, TikTokRoomInfo tikTokRoomInfo) {
this.giftManager = giftManager;
giftsMessages = new HashMap<>();
+ this.tikTokRoomInfo = tikTokRoomInfo;
}
@SneakyThrows
public MappingResult handleGifts(byte[] msg, String name, TikTokMapperHelper helper) {
var currentMessage = WebcastGiftMessage.parseFrom(msg);
var gifts = handleGift(currentMessage);
- return MappingResult.of(currentMessage,gifts);
+ return MappingResult.of(currentMessage, gifts);
}
public List handleGift(WebcastGiftMessage currentMessage) {
@@ -101,12 +104,12 @@ public class TikTokGiftEventHandler {
private TikTokGiftEvent getGiftEvent(WebcastGiftMessage message) {
var gift = getGiftObject(message);
- return new TikTokGiftEvent(gift, message);
+ return new TikTokGiftEvent(gift, tikTokRoomInfo.getHost(), message);
}
private TikTokGiftEvent getGiftComboEvent(WebcastGiftMessage message, GiftSendType state) {
var gift = getGiftObject(message);
- return new TikTokGiftComboEvent(gift, message, state);
+ return new TikTokGiftComboEvent(gift, tikTokRoomInfo.getHost(), message, state);
}
private Gift getGiftObject(WebcastGiftMessage giftMessage) {