/// <summary>
 /// Creates a new instance of the ChatClearMessagePacketModel class.
 /// </summary>
 /// <param name="packet">The Chat packet</param>
 public ChatClearMessagePacketModel(ChatRawPacketModel packet)
     : base(packet)
 {
     this.ID = packet.GetTagString("target-msg-id");
     this.UserLogin = packet.GetTagString("login");
     this.Message = packet.Get1SkippedParameterText;
 }
 /// <summary>
 /// Creates a new instance of the ChatUserNoticePacketModel class.
 /// </summary>
 /// <param name="packet">The Chat packet</param>
 public ChatUserNoticePacketModel(ChatRawPacketModel packet)
     : base(packet)
 {
     this.UserID                      = packet.GetTagLong("user-id");
     this.Login                       = packet.GetTagString("login");
     this.Moderator                   = packet.GetTagBool("mod");
     this.MessageID                   = packet.GetTagString("id");
     this.MessageTypeID               = packet.GetTagString("msg-id");
     this.SystemMessage               = packet.GetTagString("system-msg");
     this.RoomID                      = packet.GetTagString("room-id");
     this.Emotes                      = packet.GetTagString("emotes");
     this.SubCumulativeMonths         = packet.GetTagInt("msg-param-cumulative-months");
     this.SubPlan                     = packet.GetTagString("msg-param-sub-plan");
     this.SubPlanDisplayName          = packet.GetTagString("msg-param-sub-plan-name");
     this.SubShareStreakMonths        = packet.GetTagBool("msg-param-should-share-streak");
     this.SubStreakMonths             = packet.GetTagInt("msg-param-streak-months");
     this.SubGiftSenderLogin          = packet.GetTagString("msg-param-sender-login");
     this.SubGiftSenderDisplayName    = packet.GetTagString("msg-param-sender-name");
     this.SubGiftMonths               = packet.GetTagInt("msg-param-months");
     this.SubGiftRecipientID          = packet.GetTagString("msg-param-recipient-id");
     this.SubGiftRecipientLogin       = packet.GetTagString("msg-param-recipient-user-name");
     this.SubGiftRecipientDisplayName = packet.GetTagString("msg-param-recipient-display-name");
     this.SubPromoName                = packet.GetTagString("msg-param-promo-name");
     this.SubPromoTotalGifts          = packet.GetTagInt("msg-param-promo-gift-total");
     this.RaidUserLogin               = packet.GetTagString("msg-param-login");
     this.RaidUserDisplayName         = packet.GetTagString("msg-param-displayName");
     this.RaidViewerCount             = packet.GetTagInt("msg-param-viewerCount");
     this.RitualName                  = packet.GetTagString("msg-param-ritual-name");
     this.BitsTierThreshold           = packet.GetTagLong("msg-param-threshold");
     this.Timestamp                   = packet.GetTagLong("tmi-sent-ts");
 }
 /// <summary>
 /// Creates a new instance of the ChatRoomStatePacketModel class.
 /// </summary>
 /// <param name="packet">The Chat packet</param>
 public ChatRoomStatePacketModel(ChatRawPacketModel packet)
     : base(packet)
 {
     this.EmoteOnly     = packet.GetTagBool("emote-only");
     this.FollowersOnly = packet.GetTagInt("followers-only");
     this.R9K           = packet.GetTagBool("r9k");
     this.Slow          = packet.GetTagInt("slow");
     this.SubsOnly      = packet.GetTagBool("subs-only");
 }
Пример #4
0
 private void Client_OnPacketReceived(object sender, ChatRawPacketModel packet)
 {
     if (!TwitchChatService.ExcludedDiagnosticPacketLogging.Contains(packet.Command))
     {
         if (ChannelSession.AppSettings.DiagnosticLogging)
         {
             Logger.Log(LogLevel.Debug, string.Format("Twitch Client Packet Received: {0}", JSONSerializerHelper.SerializeToString(packet)));
         }
     }
 }
Пример #5
0
        /// <summary>
        /// Creates a new instance of the ChatUserStatePacketModel class.
        /// </summary>
        /// <param name="packet">The Chat packet</param>
        public ChatUserStatePacketModel(ChatRawPacketModel packet)
            : base(packet)
        {
            this.UserDisplayName = packet.GetTagString("display-name");
            this.UserBadgeInfo   = packet.GetTagString("badge-info");
            this.UserBadges      = packet.GetTagString("badges");
            this.Moderator       = packet.GetTagBool("mod");

            this.Color     = packet.GetTagString("color");
            this.EmoteSets = packet.GetTagString("emote-sets");
        }
Пример #6
0
        /// <summary>
        /// Creates a new instance of the ChatMessagePacketModel class.
        /// </summary>
        /// <param name="packet">The Chat packet</param>
        public ChatMessagePacketModel(ChatRawPacketModel packet)
            : base(packet)
        {
            this.ID      = packet.GetTagString("id");
            this.Message = packet.Get1SkippedParameterText;

            this.UserID          = packet.GetTagString("user-id");
            this.UserLogin       = packet.GetUserLogin;
            this.UserDisplayName = packet.GetTagString("display-name");
            this.UserBadgeInfo   = packet.GetTagString("badge-info");
            this.UserBadges      = packet.GetTagString("badges");
            this.Moderator       = packet.GetTagBool("mod");

            this.Color  = packet.GetTagString("color");
            this.Emotes = packet.GetTagString("emotes");
            this.RoomID = packet.GetTagString("room-id");

            this.Bits = packet.GetTagString("bits");

            this.Timestamp = packet.GetTagString("tmi-sent-ts");
        }
Пример #7
0
        /// <summary>
        /// Processes the received text packet.
        /// </summary>
        /// <param name="packetMessage">The receive text packet</param>
        /// <returns>An awaitable task</returns>
        protected override Task ProcessReceivedPacket(string packetMessage)
        {
            foreach (string packetChunk in packetMessage.Split(new char[] { '\r', '\n' }, StringSplitOptions.RemoveEmptyEntries))
            {
                ChatRawPacketModel packet = this.ProcessPacketChunk(packetChunk);

                this.OnPacketReceived?.Invoke(this, packet);

                switch (packet.Command)
                {
                case PING_COMMAND_ID:
                    this.OnPingReceived?.Invoke(this, new EventArgs());
                    break;

                case RECONNECT_COMMAND_ID:
                    this.OnReconnectRequestedReceived?.Invoke(this, new EventArgs());
                    break;

                case ChatRoomStatePacketModel.CommandID:
                    this.OnRoomStateReceived?.Invoke(this, new ChatRoomStatePacketModel(packet));
                    break;

                case ChatUsersListPacketModel.CommandID:
                    this.OnUserListReceived?.Invoke(this, new ChatUsersListPacketModel(packet));
                    break;

                case ChatUserJoinPacketModel.CommandID:
                    this.OnUserJoinReceived?.Invoke(this, new ChatUserJoinPacketModel(packet));
                    break;

                case ChatUserLeavePacketModel.CommandID:
                    this.OnUserLeaveReceived?.Invoke(this, new ChatUserLeavePacketModel(packet));
                    break;

                case ChatUserStatePacketModel.CommandID:
                    this.OnUserStateReceived?.Invoke(this, new ChatUserStatePacketModel(packet));
                    break;

                case ChatMessagePacketModel.CommandID:
                    this.OnMessageReceived?.Invoke(this, new ChatMessagePacketModel(packet));
                    break;

                case ChatWhisperMessagePacketModel.CommandID:
                    this.OnWhisperMessageReceived?.Invoke(this, new ChatWhisperMessagePacketModel(packet));
                    break;

                case ChatClearChatPacketModel.CommandID:
                    this.OnChatClearReceived?.Invoke(this, new ChatClearChatPacketModel(packet));
                    break;

                case ChatClearMessagePacketModel.CommandID:
                    this.OnClearMessageReceived?.Invoke(this, new ChatClearMessagePacketModel(packet));
                    break;

                case ChatHostTargetPacketModel.CommandID:
                    this.OnHostTargetReceived?.Invoke(this, new ChatHostTargetPacketModel(packet));
                    break;

                case ChatNoticePacketModel.CommandID:
                    this.OnNoticeReceived?.Invoke(this, new ChatNoticePacketModel(packet));
                    break;

                case ChatUserNoticePacketModel.CommandID:
                    this.OnUserNoticeReceived?.Invoke(this, new ChatUserNoticePacketModel(packet));
                    break;

                case ChatGlobalUserStatePacketModel.CommandID:
                    this.OnGlobalUserStateReceived?.Invoke(this, new ChatGlobalUserStatePacketModel(packet));
                    break;
                }
            }
            return(Task.FromResult(0));
        }
 /// <summary>
 /// Creates a new instance of the ChatUserLeavePacketModel class.
 /// </summary>
 /// <param name="packet">The Chat packet</param>
 public ChatUserLeavePacketModel(ChatRawPacketModel packet)
     : base(packet)
 {
     this.UserLogin = packet.GetUserLogin;
 }
Пример #9
0
 /// <summary>
 /// Creates a new instance of the ChatPacketModelBase class.
 /// </summary>
 /// <param name="rawPacket">The raw Chat packet</param>
 public ChatPacketModelBase(ChatRawPacketModel rawPacket)
 {
     this.RawPacket = rawPacket;
 }