summaryrefslogtreecommitdiffstats
path: root/crsm.hpp
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2015-03-18 17:38:51 +0100
committerMarkus Mittendrein <git@maxmitti.tk>2015-03-18 17:38:51 +0100
commit8983d3b38421843db67a05edee180028959c1b51 (patch)
tree904305965e9ba3baa27680d5d8b2a7b8dbea213e /crsm.hpp
parentfbe3c5fbe1327fd81e2eb8fe30a75c4cf5d7b35c (diff)
downloadmanager-8983d3b38421843db67a05edee180028959c1b51.tar.gz
manager-8983d3b38421843db67a05edee180028959c1b51.zip
Added ProcessManager, so Clonk can run independently from CRSM.
Added support for league with --league flag for !host.
Diffstat (limited to 'crsm.hpp')
-rw-r--r--crsm.hpp25
1 files changed, 20 insertions, 5 deletions
diff --git a/crsm.hpp b/crsm.hpp
index de90241..06407e8 100644
--- a/crsm.hpp
+++ b/crsm.hpp
@@ -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);