#pragma once #include #include #include #include "ClientInfo.hpp" class ScenarioSettings; class CRSMLogging { QString logFolder; QString mainLogName; QString timestampFormat; QFile mainLog; QMap logFiles; const char* cmdLogsFolder = "cmd/"; const char* ircLogsFolder = "irc/"; const char* modLogsFolder = "mod/"; const char* userLogsFolder = "usr/"; const char* clonkLogFile = "clonk"; const char* clonkChatLogFile = "clonk.chat"; const char* scensLogFile = "scenarios"; public: CRSMLogging(); QString setLogFolder(const QString& folder); QString setMainLog(const QString& fileName); void setTimestampFormat(const QString& format); void log(const QString& message, const QString logFile = ""); void clonkUserLog(const QString& message, const ClientInfo& client, bool action, bool command = false, bool response = false); void modLog(const QString& message, const ClientInfo& client, const QString& modName, bool response); void commandLog(const QString& message, const ClientInfo& client, bool response); void ircLog(const QString& message, const QString &nick, bool query = false, QString channel = "", bool action = false, bool notice = false, bool response = false); void ircUserLog(const QString& message, const ClientInfo &client, bool query, const QString &channel, bool action, bool notice); void clonkChatLog(const QString& message); void clonkLog(const QString& message); void scenLog(const ScenarioSettings& scen); QString formatIrcNick(const QString& nick, bool noChannel, const QString& channel, bool action, bool notice); };