summaryrefslogtreecommitdiffstats
path: root/crsm.hpp
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2015-09-09 19:00:56 +0200
committerMarkus Mittendrein <git@maxmitti.tk>2015-09-09 19:02:23 +0200
commit8a6d4b06f2291c363f3dea17837ed20893852453 (patch)
treec091375499e35eaa1810586454e0834c06e6c9b2 /crsm.hpp
parentf554a27046f203e56a07baaf214d90834942e3f5 (diff)
downloadmanager-8a6d4b06f2291c363f3dea17837ed20893852453.tar.gz
manager-8a6d4b06f2291c363f3dea17837ed20893852453.zip
Cleanup repo with some directories
Diffstat (limited to 'crsm.hpp')
-rw-r--r--crsm.hpp227
1 files changed, 0 insertions, 227 deletions
diff --git a/crsm.hpp b/crsm.hpp
deleted file mode 100644
index d96cc7b..0000000
--- a/crsm.hpp
+++ /dev/null
@@ -1,227 +0,0 @@
-#pragma once
-
-#include <QObject>
-#include <QProcess>
-#include <QTextStream>
-#include <QSocketNotifier>
-#include <QCoreApplication>
-#include <QTextCodec>
-#include <QMap>
-#include <QFile>
-#include <QDir>
-#include <QDebug>
-#include <QDirIterator>
-#include <Irc>
-#include <IrcConnection>
-#include <IrcCommand>
-#include <QSignalMapper>
-#include <QTcpServer>
-#include <QTcpSocket>
-
-#include "CmdFunctionRef.hpp"
-#include "ProcessManager.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"
-
-#define IRC_CHECK_CALLBACK(name) void name(const ClientInfo& requester, int status, const ClientInfo& subject)
-#define IRC_CHECK_CALLBACK_IMPL(name) void CRSM::name(const ClientInfo& requester, int status, const ClientInfo& subject) { (void)requester; (void)status; (void)subject;
-
-#ifdef Q_OS_LINUX64
-#define C4GROUP_EXECUTABLE "c4group64"
-#else
-#define C4GROUP_EXECUTABLE "c4group"
-#endif
-
-class CRSM;
-typedef void (CRSM::*IrcCheckCallback)(const ClientInfo&, int, const ClientInfo&);
-
-class ScenarioSettings {
-public:
- QString name;
- bool league = false;
- bool randomLeague = 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:
- enum IrcModOperations {
- ModCheck,
- ModInfo,
- SkipScen,
- ClearUserList,
- SkipCurrentScen,
- Autohost,
- NoAutohost,
- ModHelp,
- Kill,
- IO,
- CheckOnly,
- NewAlias,
- AliasWishes,
- IngameChat
- };
-
- enum RespondType {
- Normal,
- Notice,
- Private,
- PrivateNotice
- };
-
- Q_OBJECT
-public:
- explicit CRSM(QObject *parent = 0);
- ~CRSM();
- void start();
- bool isOk();
-
-signals:
-
-private slots:
- void readServerOutput();
- void readInput();
- void nextScen();
- void printAdditionalHelp();
- void readLog();
- void scenarioFinished();
- void ircMessageReceived(IrcMessage* message);
- void greet(QString pcName);
-
- void newManagementConnection();
- void newManagementData();
- void managementConnectionDisconnected();
-
- void updateNextAutoScens();
-
-private:
- QList<ScenarioSettings> userlist;
- QList<ScenarioSettings> autolist;
- QList<ScenarioSettings> nextAutoScens;
- QStringList args;
- QStringList ircModChecks;
- QStringList ircMods;
- QMap<QString, QList<QPair<ClientInfo, IrcCheckCallback>>> ircStatusFifos;
- QMap<QString, QList<QPair<CmdFunctionRef, QString>>> ircModFifos;
- QMap<QString, QList<QPair<IrcModOperations, QString>>> ircModFifosOld;
- QString aliasWishEditor = "";
- QString currentAliasWish = "";
- int current;
- QTextStream *qout;
- QTextStream *qin;
- bool finish;
- QMap<QString, QString> settings;
- QMap<QString, QString> session;
- QMap<QString, ClientInfo> clients;
- QMap<QString, QStringList> lists;
- QMap<QString, QMap<QString, QString>> maps;
- IrcConnection *connection = 0;
- bool autoHost = true;
- QSignalMapper greetMapper;
- ClientInfo sessionAdmin;
- ClientInfo ircAdmin;
- QMap<ClientInfo, QDateTime> leaveAdmins;
- QFile *logfile;
- QTextStream logstream;
- QTextCodec *codec;
- QStringList ircModIOList;
- QString writtenToServer;
- QMap<QString, CmdFunctionRef> cmds;
- ProcessManager* processManager;
- QTcpServer managementServer;
- QMap<QTcpSocket*, ManagementConnection> managementConnections;
-
- bool ok = false;
-
- void startScen(const ScenarioSettings& scen, QStringList);
- void readConfig();
- void readScenarios();
- void listC4Folders();
- void cleanUp();
- QString scenPath(QString scenName);
- QString listScenarios(QString commandArgs);
- QString printQueue();
- void ircCheckModCmd(const QString &nick, CmdFunctionRef func, QString arg = "");
- QString skipScen();
- bool skipCurrent();
- void writeToServer(const QString& message);
- void writeConfig();
- QString addAliasWish(const QString& param);
- void informModsAboutAliasWish();
- void editAliasWishes();
- void editAliasWishes(const QString &message);
- void stopAliasWishEditing();
- QString ircActivateIngameChat(bool activated = true);
- QStringList listC4Folder(const QString &path);
-
- void addCommand(const QString& name, CmdFunction func, int interfaces = Clonk | IRC, UserType userType = User, const QString& shortDescription = "", const QString &argList = "", const QString &longDescription = "");
- bool cmdExists(const QString& name, ClientInterface interface);
- bool cmd(const QString& name, const QString& args, const ClientInfo& client);
- void rightsFailMessage(const ClientInfo& info, UserType minUserType);
- UserType clientUserType(const ClientInfo& client);
-
- void setupCmds();
-
- void respond(const ClientInfo& client, const QString& message, const RespondType type = Normal);
- void ircCheckUserStatus(const ClientInfo& requester, const ClientInfo& subject, IrcCheckCallback callback);
- void setIngameAdmin(const ClientInfo &client, const QString& newAdmin);
-
- QFile outputBuffer;
- void out(const QString& text);
- void replayOutputBuffer(QTcpSocket *socket, bool clear = true);
-
- bool scenAllowed(const ScenarioSettings& scen, const ClientInfo& client, UserType userType);
-
- void kick(const QString& pcName, const QString& reason = "");
-
- void prepareAndConnectIrc();
-
- ClientInfo& getClientInfo(const QString& pcName, int cuid, const QString& user);
-
- CMD_FUNCTION(help);
- CMD_FUNCTION(passToClonk);
- CMD_FUNCTION(admin);
- CMD_FUNCTION(host);
- CMD_FUNCTION(list);
- CMD_FUNCTION(queue);
- CMD_FUNCTION(aliaswish);
- CMD_FUNCTION(ircchat);
- CMD_FUNCTION(autohost);
- CMD_FUNCTION(skip);
- CMD_FUNCTION(next);
- CMD_FUNCTION(kill);
- CMD_FUNCTION(clear);
- CMD_FUNCTION(aliaswishes);
- CMD_FUNCTION(newalias);
- CMD_FUNCTION(modinfo);
- CMD_FUNCTION(io);
- CMD_FUNCTION(pcNamePassToClonk);
- CMD_FUNCTION(ingameadmin);
- CMD_FUNCTION(ircadmin);
- CMD_FUNCTION(noadmin);
- CMD_FUNCTION(clientlist);
- CMD_FUNCTION(set);
-
- CMD_FUNCTION(join);
- CMD_FUNCTION(leave);
-
- CMD_FUNCTION(exit);
- CMD_FUNCTION(exitDetach);
- CMD_FUNCTION(exitUpdate);
- CMD_FUNCTION(exitAfter);
- CMD_FUNCTION(reload);
- CMD_FUNCTION(saveConfig);
-
- CMD_FUNCTION(reconnectIrc);
-
- IRC_CHECK_CALLBACK(ircSetAdmin);
- IRC_CHECK_CALLBACK(ircModCmd);
-};
-