syntax = "proto3"; package TikTok; option java_package = "io.github.jwdeveloper.tiktok.messages.data"; option java_multiple_files = true; import "enums.proto"; // @Common message Common { string method = 1; int64 msgId = 2; int64 roomId = 3; int64 createTime = 4; int32 monitor = 5; bool isShowMsg = 6; string describe = 7; Text displayText = 8; int64 foldType = 9; int64 anchorFoldType = 10; int64 priorityScore = 11; string logId = 12; string msgProcessFilterK = 13; string msgProcessFilterV = 14; string fromIdc = 15; string toIdc = 16; repeated string filterMsgTagsList = 17; LiveMessageSEI sei = 18; LiveMessageID dependRootId = 19; LiveMessageID dependId = 20; int64 anchorPriorityScore = 21; int64 roomMessageHeatLevel = 22; int64 foldTypeForWeb = 23; int64 anchorFoldTypeForWeb = 24; int64 clientSendTime = 25; IMDispatchStrategy dispatchStrategy = 26; // Enum message LiveMessageSEI { LiveMessageID uniqueId = 1; int64 timestamp = 2; } message LiveMessageID { string primaryId = 1; string messageScene = 2; } enum IMDispatchStrategy { IM_DISPATCH_STRATEGY_DEFAULT = 0; IM_DISPATCH_STRATEGY_BYPASS_DISPATCH_QUEUE = 1; } } // @Text message Text { string key = 1; string defaultPattern = 2; TextFormat defaultFormat = 3; repeated TextPiece piecesList = 4; message TextPiece { int32 type = 1; TextFormat format = 2; string stringValue = 11; oneof textPieceType { TextPieceUser userValue = 21; TextPieceGift giftValue = 22; } TextPiecePatternRef patternRefValue = 24; } message TextFormat { string color = 1; bool bold = 2; bool italic = 3; int32 weight = 4; int32 italicAngle = 5; int32 fontSize = 6; bool useHeighLightColor = 7; bool useRemoteClor = 8; } message TextPieceGift { int32 giftId = 1; // PatternRef nameRef = 2; // ShowType showType = 3; // Enum int64 colorId = 4; } message TextPiecePatternRef { string key = 1; string defaultPattern = 2; } message TextPieceUser { User user = 1; bool withColon = 2; } } // @Image message Image { repeated string urlList = 1; bool isAnimated = 9; } // @Badge message BadgeStruct { BadgeDisplayType displayType = 1; // Enum oneof badgeType { ImageBadge image = 20; TextBadge text = 21; StringBadge str = 22; CombineBadge combine = 23; } message CombineBadge { Image icon = 2; TextBadge text = 3; string str = 4; // repeated PaddingInfo padding = 5; // FontStyle fontStyle = 6; ProfileCardPanel profileCardPanel = 7; CombineBadgeBackground background = 11; CombineBadgeBackground backgroundDarkMode = 12; bool iconAutoMirrored = 13; bool backgroundAutoMirrored = 14; int32 publicScreenShowStyle = 15; int32 personalCardShowStyle = 16; int32 ranklistOnlineAudienceShowStyle = 17; int32 multiGuestShowStyle = 18; // repeated PaddingInfo paddingNewFont = 20; } message ProfileContent { bool useContent = 1; repeated IconConfig iconList = 2; NumberConfig numberConfig = 3; } message ProjectionConfig { bool useProjection = 1; Image icon = 2; } message NumberConfig { int64 number = 1; //FontStyle fontStyle = 2; CombineBadgeBackground background = 3; } message ProfileCardPanel { bool useNewProfileCardStyle = 1; // BadgeTextPosition badgeTextPosition = 2; // Enum ProjectionConfig projectionConfig = 3; ProfileContent profileContent = 4; } message CombineBadgeBackground { Image image = 1; string backgroundColorCode = 2; string borderColorCode = 3; } message ImageBadge { Image image = 2; } message TextBadge { string defaultPattern = 3; } message IconConfig { Image icon = 1; CombineBadgeBackground background = 2; } message StringBadge { string str = 2; } enum DataCase { DATA_NOT_SET = 0; IMAGE = 20; TEXT = 21; STR = 22; COMBINE = 23; } enum BadgeDisplayType { BADGEDISPLAYTYPE_UNKNOWN = 0; BADGEDISPLAYTYPE_IMAGE = 1; BADGEDISPLAYTYPE_TEXT = 2; BADGEDISPLAYTYPE_STRING = 3; BADGEDISPLAYTYPE_COMBINE = 4; } enum Position { POSITIONUNKNOWN = 0; POSITIONLEFT = 1; POSITIONRIGHT = 2; } } // @Gift message GiftStruct { Image image = 1; string describe = 2; int64 duration = 4; int64 id = 5; bool forLinkmic = 7; bool combo = 10; int32 type = 11; int32 diamondCount = 12; bool isDisplayedOnPanel = 13; int64 primaryEffectId = 14; Image giftLabelIcon = 15; string name = 16; Image icon = 21; string goldEffect = 24; Image previewImage = 47; GiftPanelBanner giftPanelBanner = 48; bool isBroadcastGift = 49; bool isEffectBefview = 50; bool isRandomGift = 51; bool isBoxGift = 52; bool canPutInGiftBox = 53; // GiftBoxInfo giftBoxInfo = 54; // @GiftPanelBanner // proto.webcast.data.GiftStruct message GiftPanelBanner { Text displayText = 1; Image leftIcon = 2; string schemaUrl = 3; repeated string bgColorValuesList = 5; string bannerLynxUrl = 6; } // @GiftRandomEffectInfo // proto.webcast.data.GiftStruct message GiftRandomEffectInfo { RandomGiftPanelBanner randomGiftPanelBanner = 1; repeated int64 effectIdsList = 2; string hostKey = 3; string audienceKey = 4; RandomGiftBubble randomGiftBubble = 5; } // @RandomGiftBubble // proto.webcast.data.GiftStruct message RandomGiftBubble { string displayText = 1; Image iconDynamicEffect = 2; } // @RandomGiftPanelBanner // proto.webcast.data.GiftStruct message RandomGiftPanelBanner { Image bgImage = 1; Image shadingImage = 2; int64 targetNum = 3; int64 collectNum = 4; string displayText = 5; Image leftIcon = 6; string schemaUrl = 7; repeated string bgColorValuesList = 8; int64 round = 9; } } // @User message User { int64 id = 1; string nickname = 3; string bioDescription = 5; Image avatarThumb = 9; Image avatarMedium = 10; Image avatarLarge = 11; bool verified = 12; int32 status = 15; int64 createTime = 16; int64 modifyTime = 17; int32 secret = 18; string shareQrcodeUri = 19; repeated Image badgeImageList = 21; FollowInfo followInfo = 22; PayGrade payGrade = 23; FansClub fansClub = 24; Border border = 25; string specialId = 26; Image avatarBorder = 27; Image medal = 28; repeated Image realTimeIconsList = 29; repeated Image newRealTimeIconsList = 30; int64 topVipNo = 31; UserAttr userAttr = 32; OwnRoom ownRoom = 33; int64 payScore = 34; int64 ticketCount = 35; LinkmicStatus linkMicStats = 37; string displayId = 38; bool withCommercePermission = 39; bool withFusionShopEntry = 40; AnchorLevel webcastAnchorLevel = 42; string verifiedContent = 43; AuthorStats authorStats = 44; repeated User topFansList = 45; string secUid = 46; int32 userRole = 47; ActivityInfo activityReward = 49; Image personalCard = 52; AuthenticationInfo authenticationInfo = 53; repeated Image mediaBadgeImageList = 57; repeated int64 commerceWebcastConfigIdsList = 60; repeated Border borderList = 61; ComboBadgeInfo comboBadgeInfo = 62; SubscribeInfo subscribeInfo = 63; repeated BadgeStruct badgeList = 64; repeated int64 mintTypeLabelList = 65; FansClubInfo fansClubInfo = 66; bool allowFindByContacts = 1002; bool allowOthersDownloadVideo = 1003; bool allowOthersDownloadWhenSharingVideo = 1004; bool allowShareShowProfile = 1005; bool allowShowInGossip = 1006; bool allowShowMyAction = 1007; bool allowStrangeComment = 1008; bool allowUnfollowerComment = 1009; bool allowUseLinkmic = 1010; AnchorLevel anchorLevel = 1011; Image avatarJpg = 1012; string bgImgUrl = 1013; int32 blockStatus = 1016; int32 commentRestrict = 1017; string constellation = 1018; int32 disableIchat = 1019; int64 enableIchatImg = 1020; int32 exp = 1021; int64 fanTicketCount = 1022; bool foldStrangerChat = 1023; int64 followStatus = 1024; int32 ichatRestrictType = 1027; string idStr = 1028; bool isFollower = 1029; bool isFollowing = 1030; bool needProfileGuide = 1031; int64 payScores = 1032; bool pushCommentStatus = 1033; bool pushDigg = 1034; bool pushFollow = 1035; bool pushFriendAction = 1036; bool pushIchat = 1037; bool pushStatus = 1038; bool pushVideoPost = 1039; bool pushVideoRecommend = 1040; UserStats stats = 1041; string verifiedReason = 1043; bool withCarManagementPermission = 1044; repeated LiveEventInfo upcomingEventList = 1045; string scmLabel = 1046; EcommerceEntrance ecommerceEntrance = 1047; bool isBlock = 1048; message LiveEventInfo { int64 eventId = 1; int64 startTime = 2; int64 duration = 3; string title = 4; string description = 5; bool hasSubscribed = 6; bool isPaidEvent = 7; int64 ticketAmount = 8; int64 payMethod = 9; // @warning Enum not found, should be PayMethod // @EventPayMethod // webcast.data.LiveEventInfo // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js enum EventPayMethod { EVENTPAYMETHODINVALID = 0; EVENTPAYMETHODCOINS = 1; EVENTPAYMETHODCASH = 2; } // @WalletPackage // proto.webcast.data.LiveEventInfo // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message WalletPackage { string iapId = 1; string usdPriceShow = 2; } } // @ActivityInfo // proto.webcast.data.User // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message ActivityInfo { Image badge = 1; Image storytag = 2; } // @AnchorLevel // proto.webcast.data.User // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message AnchorLevel { int64 level = 1; int64 experience = 2; int64 lowestExperienceThisLevel = 3; int64 highestExperienceThisLevel = 4; int64 taskStartExperience = 5; int64 taskStartTime = 6; int64 taskDecreaseExperience = 7; int64 taskTargetExperience = 8; int64 taskEndTime = 9; Image profileDialogBg = 10; Image profileDialogBgBack = 11; Image stageLevel = 12; Image smallIcon = 13; } // @AuthenticationInfo // proto.webcast.data.User // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message AuthenticationInfo { string customVerify = 1; string enterpriseVerifyReason = 2; Image authenticationBadge = 3; } // @AuthorStats // proto.webcast.data.User // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message AuthorStats { int64 videoTotalCount = 1; int64 videoTotalPlayCount = 2; int64 videoTotalShareCount = 3; int64 videoTotalSeriesCount = 4; int64 varietyShowPlayCount = 5; int64 videoTotalFavoriteCount = 6; } // @Border // proto.webcast.data.User // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message Border { Image icon = 1; int64 level = 2; string source = 3; Image profileDecorationRibbon = 4; string avatarBackgroundColor = 7; string avatarBackgroundBorderColor = 8; } // @ComboBadgeInfo // proto.webcast.data.User // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message ComboBadgeInfo { Image icon = 1; int64 comboCount = 2; } // @EcommerceEntrance // proto.webcast.data.User // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message EcommerceEntrance { EntranceType entranceType = 1; // Enum CreatorType creatorType = 2; // Enum string schema = 3; ShopEntranceInfo shopEntranceInfo = 4; ShowcaseEntranceInfo showcaseEntranceInfo = 5; // @CreatorType // webcast.data.User.EcommerceEntrance // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js enum CreatorType { UNDEFINED = 0; OFFICIAL = 1; MARKET = 2; NORMAL = 3; } // @EntranceType // webcast.data.User.EcommerceEntrance // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js enum EntranceType { PROFILE = 0; SHOWCASE = 1; SHOP = 2; } // @ShopEntranceInfo // proto.webcast.data.User.EcommerceEntrance // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message ShopEntranceInfo { string shopId = 1; string shopName = 2; string shopRating = 3; StoreLabel storeLabel = 4; string formatSoldCount = 5; int64 soldCount = 6; int32 expRatePercentile = 7; string expRateTopDisplay = 8; int32 rateDisplayStyle = 9; bool showRateNotApplicable = 10; // @StoreLabel // proto.webcast.data.User.EcommerceEntrance.ShopEntranceInfo // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message StoreLabel { StoreOfficialLabel officialLabel = 1; bool isBytemall = 2; // @StoreBrandLabelType // webcast.data.User.EcommerceEntrance.ShopEntranceInfo.StoreLabel // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js enum StoreBrandLabelType { NONE = 0; OFFICIAL = 1; AUTHORIZED = 2; STORE_BRAND_LABEL_TYPE_BLUE_V = 3; STORE_BRAND_LABEL_TYPE_TOP_CHOICE = 4; } // @StoreOfficialLabel // proto.webcast.data.User.EcommerceEntrance.ShopEntranceInfo.StoreLabel // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message StoreOfficialLabel { ShopLabelImage labelImageLight = 1; ShopLabelImage labelImageDark = 2; int64 labelType = 3; // @warning Enum not found, should be LabelType string labelTypeStr = 4; // @ShopLabelImage // proto.webcast.data.User.EcommerceEntrance.ShopEntranceInfo.StoreLabel.StoreOfficialLabel // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message ShopLabelImage { int32 height = 1; int32 width = 2; string minetype = 3; string thumbUri = 4; repeated string thumbUriList = 5; string uri = 6; repeated string urlList = 7; string color = 8; } } } } // @ShowcaseEntranceInfo // proto.webcast.data.User.EcommerceEntrance // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message ShowcaseEntranceInfo { string formatSoldCount = 1; int64 soldCount = 2; } } // @FansClub // proto.webcast.data.User // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message FansClub { FansClubData data = 1; // @FansClubData // proto.webcast.data.User.FansClub // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message FansClubData { string clubName = 1; int32 level = 2; UserFansClubStatus userFansClubStatus = 3; // Enum repeated int64 availableGiftIdsList = 5; int64 anchorId = 6; // @BadgeIcon // webcast.data.User.FansClub.FansClubData // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js enum BadgeIcon { UNKNOWN = 0; ICON = 1; SMALLICON = 2; } // @UserFansClubStatus // webcast.data.User.FansClub.FansClubData // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js enum UserFansClubStatus { NOTJOINED = 0; ACTIVE = 1; INACTIVE = 2; } } // @PreferntialType // webcast.data.User.FansClub // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js enum PreferntialType { PRESONALPROFILE = 0; OTHERROOM = 1; } } // @FansClubInfo // proto.webcast.data.User // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message FansClubInfo { bool isSleeping = 1; int64 fansLevel = 2; int64 fansScore = 3; Image badge = 4; int64 fansCount = 5; } // @FollowInfo // proto.webcast.data.User // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message FollowInfo { int64 followingCount = 1; int64 followerCount = 2; int64 followStatus = 3; int64 pushStatus = 4; } // @OwnRoom // proto.webcast.data.User // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message OwnRoom { repeated int64 roomIdsList = 1; repeated string roomIdsStrList = 2; } // @PayGrade // proto.webcast.data.User // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message PayGrade { Image diamondIcon = 2; string name = 3; Image icon = 4; string nextName = 5; int64 level = 6; Image nextIcon = 7; string gradeDescribe = 13; repeated GradeIcon gradeIconList = 14; int64 screenChatType = 15; Image imIcon = 16; Image imIconWithLevel = 17; Image liveIcon = 18; Image newImIconWithLevel = 19; Image newLiveIcon = 20; int64 upgradeNeedConsume = 21; string nextPrivileges = 22; Image background = 23; Image backgroundBack = 24; int64 score = 25; string gradeBanner = 1001; Image profileDialogBg = 1002; Image profileDialogBgBack = 1003; // @GradeIcon // proto.webcast.data.User.PayGrade // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message GradeIcon { Image icon = 1; int64 iconDiamond = 2; int64 level = 3; string levelStr = 4; } } // @SubscribeBadge // proto.webcast.data.User // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message SubscribeBadge { Image originImg = 3; Image previewImg = 4; } // @SubscribeInfo // proto.webcast.data.User // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message SubscribeInfo { bool qualification = 1; bool isSubscribe = 2; SubscribeBadge badge = 3; bool enableSubscription = 4; int64 subscriberCount = 5; bool isInGracePeriod = 6; bool isSubscribedToAnchor = 7; bool userGiftSubAuth = 9; bool anchorGiftSubAuth = 10; } // @UserAttr // proto.webcast.data.User // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message UserAttr { bool isMuted = 1; bool isAdmin = 2; bool isSuperAdmin = 3; int64 muteDuration = 4; } // @UserStats // proto.webcast.data.User // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message UserStats { int64 id = 1; string idStr = 2; int64 followingCount = 3; int64 followerCount = 4; int64 recordCount = 5; int64 totalDuration = 6; int64 dailyFanTicketCount = 7; int64 dailyIncome = 8; int64 itemCount = 9; int64 favoriteItemCount = 10; int64 diamondConsumedCount = 12; int64 tuwenItemCount = 13; } } // @Emote message Emote { string emoteId = 1; Image image = 2; AuditStatus auditStatus = 3; // Enum string uuid = 4; EmoteType emoteType = 5; // Enum ContentSource contentSource = 6; // Enum EmotePrivateType emotePrivateType = 7; // Enum } // @PunishEventInfo message PunishEventInfo { string punishType = 1; string punishReason = 2; string punishId = 3; int64 violationUid = 4; int32 punishTypeId = 5; // Enum int64 duration = 6; } // @MsgFilter message MsgFilter { bool isGifter = 1; bool isSubscribedToAnchor = 2; } // @UserIdentity // proto.webcast.data message UserIdentity { bool isGiftGiverOfAnchor = 1; bool isSubscriberOfAnchor = 2; bool isMutualFollowingWithAnchor = 3; bool isFollowerOfAnchor = 4; bool isModeratorOfAnchor = 5; bool isAnchor = 6; } // @Goal // proto.webcast.data // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message Goal { int64 id = 1; // TextType type = 2; // Enum // GoalStatus status = 3; // Enum // repeated SubGoal subGoalsList = 4; string description = 5; int32 auditStatus = 6; // CycleType cycleType = 7; // Enum int64 startTime = 8; int64 expireTime = 9; int64 realFinishTime = 10; repeated GoalContributor contributorsList = 11; int32 contributorsLength = 12; string idStr = 13; string auditDescription = 14; GoalStats stats = 15; message GoalStats { int64 totalCoins = 1; int64 totalContributor = 2; } message GoalContributor { int64 userId = 1; Image avatar = 2; string displayId = 3; int64 score = 4; string userIdStr = 5; bool inRoom = 6; bool isFriend = 7; repeated BadgeStruct badgeList = 8; bool followByOwner = 9; bool isFistContribute = 10; } } // @Indicator // proto.webcast.data // C:\Users\ja\RiderProjects\TikTokProBufferGenerator\Application\output\sources\test.js message Indicator { string key = 1; int64 op = 2; // @warning Enum not found, should be Op } // --- HANDMANDE message Ranking { string type = 1; string label = 2; TikTokColor color = 3; repeated ValueLabel details = 4; } message TikTokColor { string color = 1; uint64 id = 4; uint32 data1 = 6; } message ValueLabel { uint32 data = 1; string label = 2; string label2 = 3; string label3 = 11; } message MessageDetails { uint32 data1 = 1; TikTokColor color = 2; string category = 11; UserContainer user = 21; } message UserContainer { User user = 1; uint32 data1 = 2; } // Container for uint-Data message DataContainer { uint64 data1 = 1; uint32 data2 = 2; uint32 data3 = 3; uint32 data4 = 4; uint32 data5 = 5; uint32 data6 = 6; uint32 data7 = 7; uint32 data8 = 8; uint32 data9 = 9; } message TimeStampContainer { uint64 timestamp1 = 1; uint64 timestamp2 = 2; uint64 timestamp3 = 3; } message MemberMessageData { string type = 1; string label = 2; TikTokColor color = 3; repeated MessageDetails details = 4; // UserContainer-Data is empty } message LinkMicArmiesItems { uint64 hostUserId = 1; repeated LinkMicArmiesGroup battleGroups = 2; message LinkMicArmiesGroup { repeated User users = 1; uint32 points = 2; } } message PollStartContent { int64 StartTime = 1; int64 EndTime = 2; repeated PollOptionInfo OptionList = 3; string Title = 4; User Operator = 5; } message PollEndContent { int32 EndType = 1; // Possibly an Enum? repeated PollOptionInfo OptionList = 2; User Operator = 3; } message PollOptionInfo { int32 Votes = 1; string DisplayContent = 2; int32 OptionIdx = 3; repeated VoteUser VoteUserList = 4; } message VoteUser { int64 UserId = 1; string NickName = 2; Image AvatarThumb = 3; } message PollUpdateVotesContent { repeated PollOptionInfo OptionList = 2; } message UserFanTicket { int64 UserId = 1; int64 FanTicket = 2; int64 MatchTotalScore = 3; int32 MatchRank = 4; } message FanTicketRoomNoticeContent { repeated UserFanTicket UserFanTicketList = 1; int64 TotalLinkMicFanTicket = 2; int64 MatchId = 3; int64 EventTime = 4; string FanTicketIconUrl = 5; } message LinkerAcceptNoticeContent { int64 FromUserId = 1; int64 FromRoomId = 2; int64 ToUserId = 3; } message LinkerCancelContent { int64 FromUserId = 1; int64 ToUserId = 2; int64 CancelType = 3; int64 ActionId = 4; } message LinkerCloseContent { } message LinkerCreateContent { int64 OwnerId = 1; int64 OwnerRoomId = 2; int64 LinkType = 3; } message LinkerEnterContent { repeated User LinkedUsersList = 1; //LinkmicMultiLiveEnum AnchorMultiLiveEnum = 2; // Data.LinkmicUserSettingInfo AnchorSettingInfo = 3; } message LinkerInviteContent { int64 FromUserId = 1; int64 FromRoomId = 2; string ToRtcExtInfo = 3; bool RtcJoinChannel = 4; int64 Vendor = 5; string SecFromUserId = 6; string ToLinkmicIdStr = 7; User FromUser = 8; int64 RequiredMicIdx = 9; map RtcExtInfoMap = 10; //Data.LinkmicMultiLiveEnum AnchorMultiLiveEnum = 11; //Data.LinkmicUserSettingInfo AnchorSettingInfo = 12; string InviterLinkmicIdStr = 13; // InviteTopHostInfo FromTopHostInfo = 16; int64 ActionId = 17; // repeated LinkmicUserInfo LinkedUsersList = 18; // Data.PerceptionDialogInfo Dialog = 19; // Data.PunishEventInfo PunishInfo = 20; int32 FromRoomAgeRestricted = 21; // Data.Tag FromTag = 22; // repeated Data.CohostABTestSetting AbTestSettingList = 23; // Data.LinkerInviteMessageExtra LinkerInviteMsgExtra = 101; } message LinkerKickOutContent { int64 FromUserId = 1; //LinkMic.KickoutReason KickoutReason = 2; } message LinkerLeaveContent { int64 UserId = 1; string LinkmicIdStr = 2; int64 SendLeaveUid = 3; int64 LeaveReason = 4; } message LinkerLinkedListChangeContent { repeated User LinkedUsersList = 1; } message LinkerListChangeContent { repeated User LinkedUsersList = 1; repeated User AppliedUsersList = 2; repeated User ConnectingUsersList = 3; } message LinkerMediaChangeContent { // MicIdxOperation Op = 1; int64 ToUserId = 2; int64 AnchorId = 3; int64 RoomId = 4; // LinkerSceneType ChangeScene = 5; } message LinkerMicIdxUpdateContent { LinkerMicIdxUpdateInfo MicIdxUpdateInfo = 1; } message LinkerMicIdxUpdateInfo { // MicIdxOperation Op = 1; int64 UserId = 2; int64 MicIdx = 3; } message LinkerMuteContent { int64 UserId = 1; // Data.MuteStatus Status = 2; } message LinkerRandomMatchContent { User User = 1; int64 RoomId = 2; int64 InviteType = 3; string MatchId = 4; int64 InnerChannelId = 5; } message LinkerReplyContent { int64 FromUserId = 1; int64 FromRoomId = 2; // LinkmicInfo FromUserLinkmicInfo = 3; int64 ToUserId = 4; // LinkmicInfo ToUserLinkmicInfo = 5; int64 LinkType = 6; int64 ReplyStatus = 7; LinkerSetting LinkerSetting = 8; User FromUser = 9; User ToUser = 10; map RtcExtInfoMap = 11; LinkerMicIdxUpdateInfo InviteeMicIdxUpdateInfo = 12; map ApplierMicIdxInfoMap = 13; // Data.LinkmicMultiLiveEnum AnchorMultiLiveEnum = 14; // Data.LinkmicUserSettingInfo AnchorSettingInfo = 15; int64 ActionId = 16; // repeated LinkmicUserInfo LinkedUsersList = 17; int64 SourceType = 18; } message LinkerSetting { int64 MaxMemberLimit = 1; int64 LinkType = 2; int64 Scene = 3; int64 OwnerUserId = 4; int64 OwnerRoomId = 5; int64 Vendor = 6; } message LinkerSysKickOutContent { int64 UserId = 1; string LinkmicIdStr = 2; } message LinkerUpdateUserContent { int64 FromUserId = 1; int64 ToUserId = 2; map UpdateInfoMap = 3; } message LinkerUpdateUserSettingContent { // Data.LinkmicUserSettingInfo UpdateUserSettingInfo = 1; } message LinkerWaitingListChangeContent { }