summaryrefslogtreecommitdiffstats
path: root/crsm.h
diff options
context:
space:
mode:
Diffstat (limited to 'crsm.h')
-rw-r--r--crsm.h75
1 files changed, 67 insertions, 8 deletions
diff --git a/crsm.h b/crsm.h
index 9386562..249a36d 100644
--- a/crsm.h
+++ b/crsm.h
@@ -1,5 +1,4 @@
-#ifndef CRSM_H
-#define CRSM_H
+#pragma once
#include <QObject>
#include <QProcess>
@@ -15,9 +14,42 @@
#include <Irc>
#include <IrcConnection>
#include <IrcCommand>
+#include <QSignalMapper>
+
+#include "ClientInfo.hpp"
+
+#define CONFIG_FILE_NAME "CrServerManager.conf"
+#define CUR_SCEN_FILE_NAME "curscen.txt"
+#define LAST_SCEN_FILE_NAME "lastscen.txt"
+#define SCOREBOARD_FILE_NAME settings["ClonkDirectory"] + "scoreboard.html"
+
+#ifdef Q_OS_LINUX64
+#define C4GROUP_EXECUTABLE "c4group64"
+#else
+#define C4GROUP_EXECUTABLE "c4group"
+#endif
class CRSM : public QObject
{
+private:
+ enum IrcModOperations {
+ ModCheck,
+ ModInfo,
+ SkipScen,
+ ClearUserList,
+ SkipCurrentScen,
+ Autohost,
+ NoAutohost,
+ ModHelp,
+ Kill,
+ IO,
+ CheckOnly,
+ NewAlias,
+ AliasWishes,
+ IngameChat
+ };
+
+
Q_OBJECT
public:
explicit CRSM(QObject *parent = 0);
@@ -35,24 +67,38 @@ private slots:
void readLog();
void scenarioFinished();
void ircMessageReceived(IrcMessage* message);
+ void greet(QString pcName);
private:
QProcess *serverprocess;
QStringList scenlist;
QStringList userlist;
QStringList args;
+ QStringList ircModChecks;
+ QStringList ircMods;
+ QString aliasWishEditor = "";
+ QString currentAliasWish = "";
+ QMap<QString, QList<QPair<IrcModOperations, QString>>> ircModFifos;
int current;
QTextStream *qout;
QTextStream *qin;
bool finish;
QMap<QString, QString> settings;
QMap<QString, QString> session;
-// QStringList waitinggreets;
+ QMap<QString, ClientInfo> clients;
QStringList greeted;
QMap<QString, QStringList> lists;
+ QMap<QString, QMap<QString, QString>> maps;
int clientcount;
- IrcConnection *connection;
+ IrcConnection *connection = 0;
bool autoHost = true;
+ QSignalMapper greetMapper;
+ ClientInfo sessionAdmin;
+ QFile *logfile;
+ QTextStream logstream;
+ QTextCodec *codec;
+ QStringList ircModIOList;
+ QString writtenToServer;
void startScen(QString, QStringList);
void readConfig();
@@ -62,8 +108,21 @@ private:
void cleanUp();
bool scenExists(QString filePath);
QString listScenarios(QString commandArgs);
- QFile *logfile;
- QTextStream *logstream;
+ QString printQueue();
+ //QByteArray toClonkFormat(const QString&);
+ void ircCheckModCmd(const QString &nick, IrcModOperations operation, QString arg = "");
+ void ircModOperation(const QString &nick, IrcModOperations operation, QString arg);
+ void ircModOperation(const QString &nick, QPair<IrcModOperations, QString> operationArg);
+ QString skipScen();
+ void skipCurrent();
+ void writeToServer(const QString& message);
+ void writeConfig();
+ QString addAliasWish(const QString& param);
+ void ircModJoined(const QString& nick);
+ void informModsAboutAliasWish();
+ void editAliasWishes();
+ void editAliasWishes(const QString &message);
+ void stopAliasWishEditing();
+ QString ircActivateIngameChat(bool activated = true);
+ QStringList listC4Folder(const QString &path);
};
-
-#endif // CRSM_H