protected void HandleClearMessages(string channelName, string username) { mChatMessagesTextbox.Text = ""; // NOTE: This is not a very optimized way of doing this. All messages are re-added because // we're using a primitive text box to display messages. if (mChatController.EmoticonParsingMode == Twitch.Chat.ChatController.EmoticonMode.None) { LinkedList <Twitch.Chat.ChatRawMessage> .Enumerator e = mChatController.GetRawMessages(channelName); while (e.MoveNext()) { Twitch.Chat.ChatRawMessage msg = e.Current; HandleRawMessagesReceived(channelName, new Twitch.Chat.ChatRawMessage[] { msg }); } } else { LinkedList <Twitch.Chat.ChatTokenizedMessage> .Enumerator e = mChatController.GetTokenizedMessages(channelName); while (e.MoveNext()) { Twitch.Chat.ChatTokenizedMessage msg = e.Current; HandleTokenizedMessagesReceived(channelName, new Twitch.Chat.ChatTokenizedMessage[] { msg }); } } }
protected void HandleTokenizedMessagesReceived(Twitch.Chat.ChatTokenizedMessage[] messages) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < messages.Length; ++i) { Twitch.Chat.ChatTokenizedMessage msg = messages[i]; sb.Append(msg.DisplayName).Append(": "); for (int t = 0; t < msg.Tokens.Length; ++t) { Twitch.Chat.ChatMessageToken token = msg.Tokens[t]; switch (token.Type) { case Twitch.Chat.TTV_ChatMessageTokenType.TTV_CHAT_MSGTOKEN_TEXT: { Twitch.Chat.ChatTextMessageToken mt = token as Twitch.Chat.ChatTextMessageToken; sb.Append(mt.Message); break; } case Twitch.Chat.TTV_ChatMessageTokenType.TTV_CHAT_MSGTOKEN_IMAGE: { Twitch.Chat.ChatImageMessageToken mt = token as Twitch.Chat.ChatImageMessageToken; sb.Append("[emoticon]"); break; } } } sb.AppendLine(); mChatMessagesTextbox.Text = mChatMessagesTextbox.Text + sb.ToString(); sb.Clear(); } }
protected void HandleTokenizedMessagesReceived(string channelName, Twitch.Chat.ChatTokenizedMessage[] messages) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < messages.Length; ++i) { Twitch.Chat.ChatTokenizedMessage msg = messages[i]; sb.Append(msg.DisplayName).Append(": "); for (int t = 0; t < msg.Tokens.Length; ++t) { Twitch.Chat.ChatMessageToken token = msg.Tokens[t]; switch (token.Type) { case Twitch.Chat.TTV_ChatMessageTokenType.TTV_CHAT_MSGTOKEN_TEXT: { Twitch.Chat.ChatTextMessageToken mt = token as Twitch.Chat.ChatTextMessageToken; sb.Append(mt.Message); break; } case Twitch.Chat.TTV_ChatMessageTokenType.TTV_CHAT_MSGTOKEN_TEXTURE_IMAGE: { Twitch.Chat.ChatTextureImageMessageToken mt = token as Twitch.Chat.ChatTextureImageMessageToken; sb.Append(string.Format("[{0},{1},{2},{3},{4}]", mt.SheetIndex, mt.X1, mt.Y1, mt.X2, mt.Y2)); break; } case Twitch.Chat.TTV_ChatMessageTokenType.TTV_CHAT_MSGTOKEN_URL_IMAGE: { Twitch.Chat.ChatUrlImageMessageToken mt = token as Twitch.Chat.ChatUrlImageMessageToken; sb.Append("[").Append(mt.Url).Append("]"); break; } } } sb.AppendLine(); mChatMessagesTextbox.Text = mChatMessagesTextbox.Text + sb.ToString(); sb.Clear(); } }