/// <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"); }
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))); } } }
/// <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"); }
/// <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"); }
/// <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; }
/// <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; }