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.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[] 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>
/// Intitialize the Alerts bot
/// </summary>
public override void Initialize()
{
dictionary = FromFile(Settings.Alerts_MatchesFile);
excludelist = FromFile(Settings.Alerts_ExcludesFile);
dictionary = LoadDistinctEntriesFromFile(Settings.Alerts_MatchesFile);
excludelist = LoadDistinctEntriesFromFile(Settings.Alerts_ExcludesFile);
}
/// <summary>

View file

@ -6,34 +6,16 @@ using System.IO;
namespace MinecraftClient.ChatBots
{
class Auto_Respond : ChatBot
class AutoRespond : ChatBot
{
private String[] respondon = 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];
}
}
private string[] respondon = new string[0];
private string[] torespond = new string[0];
//Initalize the bot
public override void Initialize()
{
respondon = FromFile(Settings.Respond_MatchesFile);
torespond = FromFile(Settings.Respond_RespondFile);
respondon = LoadDistinctEntriesFromFile(Settings.Respond_MatchesFile);
torespond = LoadDistinctEntriesFromFile(Settings.Respond_RespondFile);
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.ScriptScheduler_Enabled) { BotLoad(new ChatBots.ScriptScheduler(Settings.expandVars(Settings.ScriptScheduler_TasksFile))); }
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

View file

@ -74,7 +74,7 @@
<Compile Include="AutoTimeout.cs" />
<Compile Include="ChatBots\Alerts.cs" />
<Compile Include="ChatBots\AntiAFK.cs" />
<Compile Include="ChatBots\Auto Respond.cs" />
<Compile Include="ChatBots\AutoRespond.cs" />
<Compile Include="ChatBots\AutoRelog.cs" />
<Compile Include="ChatBots\ChatLog.cs" />
<Compile Include="ChatBots\HangmanGame.cs" />