using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.IO; using static System.Net.WebRequestMethods; namespace MinecraftClient.ChatBots { /// /// This bot make the console beep on some specified words. Useful to detect when someone is talking to you, for example. /// public class Alerts : ChatBot { private string[] dictionary = new string[0]; private string[] excludelist = new string[0]; private bool logToFile = false; /// /// Intitialize the Alerts bot /// public override void Initialize() { dictionary = LoadDistinctEntriesFromFile(Settings.Alerts_MatchesFile); excludelist = LoadDistinctEntriesFromFile(Settings.Alerts_ExcludesFile); logToFile = Settings.Alerts_File_Logging; } /// /// Process text received from the server to display alerts /// /// Received text public override void GetText(string text) { //Remove color codes and convert to lowercase text = GetVerbatim(text).ToLower(); //Proceed only if no exclusions are found in text if (!excludelist.Any(exclusion => text.Contains(exclusion))) { //Show an alert for each alert item found in text, if any foreach (string alert in dictionary.Where(alert => text.Contains(alert))) { if (Settings.Alerts_Beep_Enabled) Console.Beep(); //Text found ! ConsoleIO.WriteLine(text.Replace(alert, "§c" + alert + "§r")); if (logToFile && Settings.Alerts_LogFile.Length > 0) { DateTime now = DateTime.Now; string TimeStamp = "[" + now.Year + '/' + now.Month + '/' + now.Day + ' ' + now.Hour + ':' + now.Minute + ']'; System.IO.File.AppendAllText(Settings.Alerts_LogFile, TimeStamp + " " + GetVerbatim(text) + "\n"); } } } } } }