diff options
Diffstat (limited to 'crsm.hpp')
| -rw-r--r-- | crsm.hpp | 25 |
1 files changed, 20 insertions, 5 deletions
@@ -17,6 +17,7 @@ #include <QSignalMapper> #include "CmdFunctionRef.hpp" +#include "ProcessManager.hpp" #define CONFIG_FILE_NAME "CrServerManager.conf" #define CUR_SCEN_FILE_NAME "curscen.txt" @@ -35,6 +36,16 @@ class CRSM; typedef void (CRSM::*IrcCheckCallback)(const ClientInfo&, int, const ClientInfo&); +class ScenarioSettings { +public: + QString name; + bool league = false; + ClientInfo wishClient; + + ScenarioSettings(const QString& name, bool league = false) : name(name), league(league) {} + ScenarioSettings(const QString& name, const ClientInfo& client, bool league = false) : name(name), league(league), wishClient(client) {} +}; + class CRSM : public QObject { private: @@ -67,12 +78,13 @@ public: explicit CRSM(QObject *parent = 0); ~CRSM(); void start(); + bool isOk(); signals: private slots: void readServerOutput(); - void processError(); + //void processError(); void readInput(); void nextScen(); void printAdditionalHelp(); @@ -82,9 +94,8 @@ private slots: void greet(QString pcName); private: - QProcess *serverprocess; QStringList scenlist; - QStringList userlist; + QList<ScenarioSettings> userlist; QStringList args; QStringList ircModChecks; QStringList ircMods; @@ -115,8 +126,11 @@ private: QStringList ircModIOList; QString writtenToServer; QMap<QString, CmdFunctionRef> cmds; + ProcessManager* processManager; + + bool ok = false; - void startScen(QString, QStringList); + void startScen(const ScenarioSettings& scen, QStringList); void readConfig(); void readScenarios(); QMap<QString, QString> defaultSettings(); @@ -127,7 +141,7 @@ private: QString printQueue(); void ircCheckModCmd(const QString &nick, CmdFunctionRef func, QString arg = ""); QString skipScen(); - void skipCurrent(); + bool skipCurrent(); void writeToServer(const QString& message); void writeConfig(); QString addAliasWish(const QString& param); @@ -172,6 +186,7 @@ private: CMD_FUNCTION(ircadmin); CMD_FUNCTION(noadmin); CMD_FUNCTION(clientlist); + CMD_FUNCTION(set); IRC_CHECK_CALLBACK(ircSetAdmin); IRC_CHECK_CALLBACK(ircModCmd); |
