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; } } }
public override void Execute(IEnumerable <String> arguments) { PreviousMessages.Clear(); }