Normalize AutoRespond bot

Move FromFile method from bots to ChatBot class
Rename file and class, removing space and underscore.
This commit is contained in:
ORelio 2015-05-26 19:16:50 +02:00
parent b07091e3dd
commit 53156bdf98
5 changed files with 33 additions and 50 deletions

View file

@ -380,5 +380,29 @@ namespace MinecraftClient
time.Minute.ToString("00"), time.Minute.ToString("00"),
time.Second.ToString("00")); time.Second.ToString("00"));
} }
/// <summary>
/// Load entries from a file as a string array, removing duplicates and empty lines
/// </summary>
/// <param name="file">File to load</param>
/// <returns>The string array or an empty array if failed to load the file</returns>
protected static string[] LoadDistinctEntriesFromFile(string file)
{
if (File.Exists(file))
{
//Read all lines from file, remove lines with no text, convert to lowercase,
//remove duplicate entries, convert to a string array, and return the result.
return File.ReadAllLines(file)
.Where(line => !String.IsNullOrWhiteSpace(line))
.Select(line => line.ToLower())
.Distinct().ToArray();
}
else
{
LogToConsole("File not found: " + Settings.Alerts_MatchesFile);
return new string[0];
}
}
} }
} }

View file

@ -14,36 +14,13 @@ namespace MinecraftClient.ChatBots
private string[] dictionary = new string[0]; private string[] dictionary = new string[0];
private string[] excludelist = new string[0]; private string[] excludelist = new string[0];
/// <summary>
/// Import alerts from the specified file
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
private static string[] FromFile(string file)
{
if (File.Exists(file))
{
//Read all lines from file, remove lines with no text, convert to lowercase,
//remove duplicate entries, convert to a string array, and return the result.
return File.ReadAllLines(file)
.Where(line => !String.IsNullOrWhiteSpace(line))
.Select(line => line.ToLower())
.Distinct().ToArray();
}
else
{
LogToConsole("File not found: " + Settings.Alerts_MatchesFile);
return new string[0];
}
}
/// <summary> /// <summary>
/// Intitialize the Alerts bot /// Intitialize the Alerts bot
/// </summary> /// </summary>
public override void Initialize() public override void Initialize()
{ {
dictionary = FromFile(Settings.Alerts_MatchesFile); dictionary = LoadDistinctEntriesFromFile(Settings.Alerts_MatchesFile);
excludelist = FromFile(Settings.Alerts_ExcludesFile); excludelist = LoadDistinctEntriesFromFile(Settings.Alerts_ExcludesFile);
} }
/// <summary> /// <summary>

View file

@ -6,34 +6,16 @@ using System.IO;
namespace MinecraftClient.ChatBots namespace MinecraftClient.ChatBots
{ {
class Auto_Respond : ChatBot class AutoRespond : ChatBot
{ {
private String[] respondon = new String[0]; private string[] respondon = new string[0];
private String[] torespond = new String[0]; private string[] torespond = new string[0];
private static string[] FromFile(string file)
{
if (File.Exists(file))
{
//Read all lines from file, remove lines with no text, convert to lowercase,
//remove duplicate entries, convert to a string array, and return the result.
return File.ReadAllLines(file)
.Where(line => !String.IsNullOrWhiteSpace(line))
.Select(line => line.ToLower())
.Distinct().ToArray();
}
else
{
LogToConsole("File not found: " + file);
return new string[0];
}
}
//Initalize the bot //Initalize the bot
public override void Initialize() public override void Initialize()
{ {
respondon = FromFile(Settings.Respond_MatchesFile); respondon = LoadDistinctEntriesFromFile(Settings.Respond_MatchesFile);
torespond = FromFile(Settings.Respond_RespondFile); torespond = LoadDistinctEntriesFromFile(Settings.Respond_RespondFile);
ConsoleIO.WriteLine("Auto Respond Bot Sucessfully loaded!"); ConsoleIO.WriteLine("Auto Respond Bot Sucessfully loaded!");
} }

View file

@ -106,7 +106,7 @@ namespace MinecraftClient
if (Settings.AutoRelog_Enabled) { BotLoad(new ChatBots.AutoRelog(Settings.AutoRelog_Delay, Settings.AutoRelog_Retries)); } if (Settings.AutoRelog_Enabled) { BotLoad(new ChatBots.AutoRelog(Settings.AutoRelog_Delay, Settings.AutoRelog_Retries)); }
if (Settings.ScriptScheduler_Enabled) { BotLoad(new ChatBots.ScriptScheduler(Settings.expandVars(Settings.ScriptScheduler_TasksFile))); } if (Settings.ScriptScheduler_Enabled) { BotLoad(new ChatBots.ScriptScheduler(Settings.expandVars(Settings.ScriptScheduler_TasksFile))); }
if (Settings.RemoteCtrl_Enabled) { BotLoad(new ChatBots.RemoteControl()); } if (Settings.RemoteCtrl_Enabled) { BotLoad(new ChatBots.RemoteControl()); }
if (Settings.Respond_Enabled) { BotLoad(new ChatBots.Auto_Respond()); } if (Settings.Respond_Enabled) { BotLoad(new ChatBots.AutoRespond()); }
} }
try try