mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2025-10-14 21:22:49 +00:00
Add ChatBot logging to file and 'log' command
- log <text> will print '[BOT] text' to the console - logged [BOT] lines can be written to a logfile - chatbotlogfile INI setting is used to set the log file
This commit is contained in:
parent
6f1fcb22ce
commit
162a1414bf
5 changed files with 63 additions and 15 deletions
|
|
@ -2,6 +2,7 @@
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
namespace MinecraftClient
|
namespace MinecraftClient
|
||||||
{
|
{
|
||||||
|
|
@ -70,6 +71,7 @@ namespace MinecraftClient
|
||||||
/* =================================================================== */
|
/* =================================================================== */
|
||||||
/* ToolBox - Methods below might be useful while creating your bot. */
|
/* ToolBox - Methods below might be useful while creating your bot. */
|
||||||
/* You should not need to interact with other classes of the program. */
|
/* You should not need to interact with other classes of the program. */
|
||||||
|
/* All the methods in this ChatBot class should do the job for you. */
|
||||||
/* =================================================================== */
|
/* =================================================================== */
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -80,7 +82,7 @@ namespace MinecraftClient
|
||||||
|
|
||||||
protected bool SendText(string text)
|
protected bool SendText(string text)
|
||||||
{
|
{
|
||||||
ConsoleIO.WriteLineFormatted("§8BOT:" + text, false);
|
LogToConsole("Sending '" + text + "'");
|
||||||
return handler.SendText(text);
|
return handler.SendText(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -257,6 +259,19 @@ namespace MinecraftClient
|
||||||
public static void LogToConsole(string text)
|
public static void LogToConsole(string text)
|
||||||
{
|
{
|
||||||
ConsoleIO.WriteLineFormatted("§8[BOT] " + text);
|
ConsoleIO.WriteLineFormatted("§8[BOT] " + text);
|
||||||
|
|
||||||
|
if (String.IsNullOrEmpty(Settings.chatbotLogFile))
|
||||||
|
{
|
||||||
|
if (!File.Exists(Settings.chatbotLogFile))
|
||||||
|
{
|
||||||
|
try { Directory.CreateDirectory(Path.GetDirectoryName(Settings.chatbotLogFile)); }
|
||||||
|
catch { return; /* Invalid path or access denied */ }
|
||||||
|
try { File.WriteAllText(Settings.chatbotLogFile, ""); }
|
||||||
|
catch { return; /* Invalid file name or access denied */ }
|
||||||
|
}
|
||||||
|
|
||||||
|
File.AppendAllLines(Settings.chatbotLogFile, new string[] { getTimestamp() + ' ' + text });
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
@ -317,5 +332,24 @@ namespace MinecraftClient
|
||||||
{
|
{
|
||||||
handler.BotLoad(new ChatBots.Script(filename, playername));
|
handler.BotLoad(new ChatBots.Script(filename, playername));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Get a D-M-Y h:m:s timestamp representing the current system date and time
|
||||||
|
/// </summary>
|
||||||
|
|
||||||
|
protected static string getTimestamp()
|
||||||
|
{
|
||||||
|
DateTime time = DateTime.Now;
|
||||||
|
|
||||||
|
string D = time.Day.ToString("00");
|
||||||
|
string M = time.Month.ToString("00");
|
||||||
|
string Y = time.Year.ToString("0000");
|
||||||
|
|
||||||
|
string h = time.Hour.ToString("00");
|
||||||
|
string m = time.Minute.ToString("00");
|
||||||
|
string s = time.Second.ToString("00");
|
||||||
|
|
||||||
|
return "" + D + '-' + M + '-' + Y + ' ' + h + ':' + m + ':' + s;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -90,20 +90,7 @@ namespace MinecraftClient.ChatBots
|
||||||
private void save(string tosave)
|
private void save(string tosave)
|
||||||
{
|
{
|
||||||
if (dateandtime)
|
if (dateandtime)
|
||||||
{
|
tosave = getTimestamp() + ' ' + tosave;
|
||||||
int day = DateTime.Now.Day, month = DateTime.Now.Month;
|
|
||||||
int hour = DateTime.Now.Hour, minute = DateTime.Now.Minute, second = DateTime.Now.Second;
|
|
||||||
|
|
||||||
string D = day < 10 ? "0" + day : "" + day;
|
|
||||||
string M = month < 10 ? "0" + month : "" + day;
|
|
||||||
string Y = "" + DateTime.Now.Year;
|
|
||||||
|
|
||||||
string h = hour < 10 ? "0" + hour : "" + hour;
|
|
||||||
string m = minute < 10 ? "0" + minute : "" + minute;
|
|
||||||
string s = second < 10 ? "0" + second : "" + second;
|
|
||||||
|
|
||||||
tosave = "" + D + '-' + M + '-' + Y + ' ' + h + ':' + m + ':' + s + ' ' + tosave;
|
|
||||||
}
|
|
||||||
|
|
||||||
Directory.CreateDirectory(Path.GetDirectoryName(logfile));
|
Directory.CreateDirectory(Path.GetDirectoryName(logfile));
|
||||||
FileStream stream = new FileStream(logfile, FileMode.OpenOrCreate);
|
FileStream stream = new FileStream(logfile, FileMode.OpenOrCreate);
|
||||||
|
|
|
||||||
23
MinecraftClient/Commands/Log.cs
Normal file
23
MinecraftClient/Commands/Log.cs
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
|
||||||
|
namespace MinecraftClient.Commands
|
||||||
|
{
|
||||||
|
public class Log : Command
|
||||||
|
{
|
||||||
|
public override string CMDName { get { return "log"; } }
|
||||||
|
public override string CMDDesc { get { return "log <text>: log some text to the console."; } }
|
||||||
|
|
||||||
|
public override string Run(McTcpClient handler, string command)
|
||||||
|
{
|
||||||
|
if (hasArg(command))
|
||||||
|
{
|
||||||
|
ChatBot.LogToConsole(getArg(command));
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
else return CMDDesc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -85,6 +85,7 @@
|
||||||
<Compile Include="Command.cs" />
|
<Compile Include="Command.cs" />
|
||||||
<Compile Include="Commands\Connect.cs" />
|
<Compile Include="Commands\Connect.cs" />
|
||||||
<Compile Include="Commands\Exit.cs" />
|
<Compile Include="Commands\Exit.cs" />
|
||||||
|
<Compile Include="Commands\Log.cs" />
|
||||||
<Compile Include="Commands\Reco.cs" />
|
<Compile Include="Commands\Reco.cs" />
|
||||||
<Compile Include="Commands\Respawn.cs" />
|
<Compile Include="Commands\Respawn.cs" />
|
||||||
<Compile Include="Commands\Script.cs" />
|
<Compile Include="Commands\Script.cs" />
|
||||||
|
|
|
||||||
|
|
@ -43,6 +43,7 @@ namespace MinecraftClient
|
||||||
public static bool exitOnFailure = false;
|
public static bool exitOnFailure = false;
|
||||||
public static char internalCmdChar = '/';
|
public static char internalCmdChar = '/';
|
||||||
public static bool playerHeadAsIcon = false;
|
public static bool playerHeadAsIcon = false;
|
||||||
|
public static string chatbotLogFile = "";
|
||||||
|
|
||||||
//AntiAFK Settings
|
//AntiAFK Settings
|
||||||
public static bool AntiAFK_Enabled = false;
|
public static bool AntiAFK_Enabled = false;
|
||||||
|
|
@ -147,6 +148,7 @@ namespace MinecraftClient
|
||||||
case "timestamps": chatTimeStamps = str2bool(argValue); break;
|
case "timestamps": chatTimeStamps = str2bool(argValue); break;
|
||||||
case "exitonfailure": exitOnFailure = str2bool(argValue); break;
|
case "exitonfailure": exitOnFailure = str2bool(argValue); break;
|
||||||
case "playerheadicon": playerHeadAsIcon = str2bool(argValue); break;
|
case "playerheadicon": playerHeadAsIcon = str2bool(argValue); break;
|
||||||
|
case "chatbotlogfile": chatbotLogFile = argValue; break;
|
||||||
case "mcversion": ServerVersion = argValue; break;
|
case "mcversion": ServerVersion = argValue; break;
|
||||||
|
|
||||||
case "botowners":
|
case "botowners":
|
||||||
|
|
@ -328,6 +330,7 @@ namespace MinecraftClient
|
||||||
+ "consoletitle=%username% - Minecraft Console Client\r\n"
|
+ "consoletitle=%username% - Minecraft Console Client\r\n"
|
||||||
+ "internalcmdchar=slash #use 'none', 'slash' or 'backslash'\r\n"
|
+ "internalcmdchar=slash #use 'none', 'slash' or 'backslash'\r\n"
|
||||||
+ "mcversion=auto #use 'auto' or '1.X.X' values\r\n"
|
+ "mcversion=auto #use 'auto' or '1.X.X' values\r\n"
|
||||||
|
+ "chatbotlogfile= #leave empty for no logfile\r\n"
|
||||||
+ "accountlist=accounts.txt\r\n"
|
+ "accountlist=accounts.txt\r\n"
|
||||||
+ "serverlist=servers.txt\r\n"
|
+ "serverlist=servers.txt\r\n"
|
||||||
+ "playerheadicon=true\r\n"
|
+ "playerheadicon=true\r\n"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue