コード例 #1
0
ファイル: AutoChat.cs プロジェクト: EvanQuan/Chubberino
        private void Client_OnMessageReceived(Object sender, OnMessageReceivedArgs e)
        {
            if (ShouldIgnore(e.ChatMessage))
            {
                PreviousMessages.Enqueue(null);
            }
            else if (OnCooldown)
            {
                MessageCooldownTracker++;
                if (MessageCooldownTracker > MessageCooldownCount)
                {
                    OnCooldown             = false;
                    MessageCooldownTracker = 0;
                }
            }
            else
            {
                PreviousMessages.Enqueue(e.ChatMessage.Message);
            }


            if (PreviousMessages.Count >= MessageSampleCount)
            {
                // Get the most common message from the last GeneralMessageCount
                // number of messages, as long as there is more than one
                // duplicate of it.
                if (TryGetMessageToSend(out String message))
                {
                    TwitchClientManager.SpoolMessage(message);
                    OnCooldown = true;
                }

                // Empty the last messages, whether one was sent or not to
                // avoid copying old messages.
                PreviousMessages.Clear();
            }
            else if (SpamMessageSampleCounts.Any(count => PreviousMessages.Count >= count))
            {
                // Get the most common message from the last SpamMessageCount
                // number of messages, as long as there is more than one
                // duplicate of it.
                if (TryGetMessageToSend(out String message))
                {
                    TwitchClientManager.SpoolMessage(message);
                    // Empty the last messages, if one was sent.
                    PreviousMessages.Clear();
                    OnCooldown = true;
                }
            }
        }
コード例 #2
0
ファイル: AutoChat.cs プロジェクト: EvanQuan/Chubberino
 public override void Execute(IEnumerable <String> arguments)
 {
     PreviousMessages.Clear();
 }