diff options
| author | Markus Mittendrein <git@maxmitti.tk> | 2015-09-09 19:00:56 +0200 |
|---|---|---|
| committer | Markus Mittendrein <git@maxmitti.tk> | 2015-09-09 19:02:23 +0200 |
| commit | 8a6d4b06f2291c363f3dea17837ed20893852453 (patch) | |
| tree | c091375499e35eaa1810586454e0834c06e6c9b2 /crsm.hpp | |
| parent | f554a27046f203e56a07baaf214d90834942e3f5 (diff) | |
| download | manager-8a6d4b06f2291c363f3dea17837ed20893852453.tar.gz manager-8a6d4b06f2291c363f3dea17837ed20893852453.zip | |
Cleanup repo with some directories
Diffstat (limited to 'crsm.hpp')
| -rw-r--r-- | crsm.hpp | 227 |
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); -}; - |
