From 4be74c45ff0414187462f4381bee9e06a86f350a Mon Sep 17 00:00:00 2001 From: GosDev <39804434+GospelBG@users.noreply.github.com> Date: Sun, 16 Nov 2025 04:57:43 +0100 Subject: [PATCH] Implement Social Event instances with custom Users (#151) * Add .of methods for custom User objects Adds an extra .of() function that accepts a User object, instead of a username string. * Use username if profile name not set * Add combo argument * Replace WebcastGiftMessage from the new constructor * Fix argument naming error * Fix wrong argument order --- .../events/gift/TikTokGiftComboEvent.java | 13 +++++++++++ .../data/events/gift/TikTokGiftEvent.java | 22 +++++++++++++------ .../data/events/social/TikTokFollowEvent.java | 10 +++++++++ .../data/events/social/TikTokJoinEvent.java | 10 +++++++++ .../data/events/social/TikTokLikeEvent.java | 11 ++++++++++ .../data/events/social/TikTokShareEvent.java | 9 ++++++++ 6 files changed, 68 insertions(+), 7 deletions(-) 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 6b396d6..8336d82 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 @@ -39,6 +39,11 @@ public class TikTokGiftComboEvent extends TikTokGiftEvent { this.comboState = comboState; } + public TikTokGiftComboEvent(Gift gift, User host, User user, int combo, GiftComboStateType comboState) { + super(gift, user, host, combo); + this.comboState = comboState; + } + public static TikTokGiftComboEvent of(Gift gift, int combo, GiftComboStateType comboState) { return new TikTokGiftComboEvent( gift, @@ -46,4 +51,12 @@ public class TikTokGiftComboEvent extends TikTokGiftEvent { WebcastGiftMessage.newBuilder().setComboCount(combo).build(), comboState); } + + public static TikTokGiftComboEvent of(Gift gift, User host, User user, int combo, GiftComboStateType comboState) { + return new TikTokGiftComboEvent(gift, + host, + user, + combo, + comboState); + } } \ No newline at end of file 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 7fdc0b7..ce71f90 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,17 +49,25 @@ public class TikTokGiftEvent extends TikTokHeaderEvent { } combo = msg.getComboCount(); } - - public TikTokGiftEvent(Gift gift) { + + public TikTokGiftEvent(Gift gift, User user, User toUser, int combo) { this.gift = gift; - user = new User(0L, "sender", new Picture("")); - toUser = new User(0L, "receiver", new Picture("")); - combo = 1; + this.user = user; + this.toUser = toUser; + this.combo = combo; } - public static TikTokGiftEvent of(Gift gift) { - return new TikTokGiftEvent(gift); + return new TikTokGiftEvent( + gift, + new User(0L, "sender", new Picture("")), + new User(0L, "reviever", new Picture("")), + 1 + ); + } + + public static TikTokGiftEvent of(Gift gift, User user, User toUser) { + return new TikTokGiftEvent(gift, user, toUser, 1) ; } public static TikTokGiftEvent of(String name, int id, int diamonds) { diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokFollowEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokFollowEvent.java index 7433fe5..de0813c 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokFollowEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokFollowEvent.java @@ -50,4 +50,14 @@ public class TikTokFollowEvent extends TikTokHeaderEvent { .build()) .build()); } + + public static TikTokFollowEvent of(User user) { + return new TikTokFollowEvent(WebcastSocialMessage.newBuilder() + .setUser(io.github.jwdeveloper.tiktok.messages.data.User.newBuilder() + .setUsername(user.getName()) + .setNickname(user.getProfileName() != null ? user.getProfileName() : user.getName()) + .setId(user.getId()) + .build()) + .build()); + } } \ No newline at end of file diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokJoinEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokJoinEvent.java index 40328ec..c412098 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokJoinEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokJoinEvent.java @@ -57,4 +57,14 @@ public class TikTokJoinEvent extends TikTokHeaderEvent { .build()) .build()); } + + public static TikTokJoinEvent of(User user) { + return new TikTokJoinEvent(WebcastMemberMessage.newBuilder() + .setUser(io.github.jwdeveloper.tiktok.messages.data.User.newBuilder() + .setUsername(user.getName()) + .setNickname(user.getProfileName()) + .setId(user.getId()) + .build()) + .build()); + } } \ No newline at end of file diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokLikeEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokLikeEvent.java index 4827e07..4b76096 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokLikeEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokLikeEvent.java @@ -67,4 +67,15 @@ public class TikTokLikeEvent extends TikTokHeaderEvent .build()) .build()); } + + public static TikTokLikeEvent of(User user, int likes) { + return new TikTokLikeEvent(WebcastLikeMessage.newBuilder() + .setCount(likes) + .setTotal(likes) + .setUser(io.github.jwdeveloper.tiktok.messages.data.User.newBuilder() + .setUsername(user.getName()) + .setNickname(user.getProfileName()) + .build()) + .build()); + } } \ No newline at end of file diff --git a/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokShareEvent.java b/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokShareEvent.java index 4a994c4..9e706ba 100644 --- a/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokShareEvent.java +++ b/API/src/main/java/io/github/jwdeveloper/tiktok/data/events/social/TikTokShareEvent.java @@ -55,4 +55,13 @@ public class TikTokShareEvent extends TikTokHeaderEvent { .build()) .build(), shaders); } + + public static TikTokShareEvent of(User user, int shaders) { + return new TikTokShareEvent(WebcastSocialMessage.newBuilder() + .setUser(io.github.jwdeveloper.tiktok.messages.data.User.newBuilder() + .setUsername(user.getName()) + .setNickname(user.getProfileName()) + .build()) + .build(), shaders); + } } \ No newline at end of file