summaryrefslogtreecommitdiffstats
path: root/crsm.hpp
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2015-06-12 01:56:58 +0200
committerMarkus Mittendrein <git@maxmitti.tk>2015-06-12 01:56:58 +0200
commit6dc0eddef4e743352c36ea8d90f684f8fd424559 (patch)
tree0fc0ae294ad2821ffe7a076753ce0fd0e7faeafc /crsm.hpp
parentbbd9118633963232ad1f357cba4b99394d2f4f82 (diff)
downloadmanager-6dc0eddef4e743352c36ea8d90f684f8fd424559.tar.gz
manager-6dc0eddef4e743352c36ea8d90f684f8fd424559.zip
Added basic antiflood.
Release round admin when he is leaving, but he can regain it in a specified time.
Diffstat (limited to 'crsm.hpp')
-rw-r--r--crsm.hpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/crsm.hpp b/crsm.hpp
index b353950..d96cc7b 100644
--- a/crsm.hpp
+++ b/crsm.hpp
@@ -27,7 +27,7 @@
#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)
+#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"
@@ -120,7 +120,6 @@ private:
QMap<QString, QString> settings;
QMap<QString, QString> session;
QMap<QString, ClientInfo> clients;
- QStringList greeted;
QMap<QString, QStringList> lists;
QMap<QString, QMap<QString, QString>> maps;
IrcConnection *connection = 0;
@@ -128,6 +127,7 @@ private:
QSignalMapper greetMapper;
ClientInfo sessionAdmin;
ClientInfo ircAdmin;
+ QMap<ClientInfo, QDateTime> leaveAdmins;
QFile *logfile;
QTextStream logstream;
QTextCodec *codec;
@@ -143,10 +143,9 @@ private:
void startScen(const ScenarioSettings& scen, QStringList);
void readConfig();
void readScenarios();
- QMap<QString, QString> defaultSettings();
void listC4Folders();
void cleanUp();
- bool scenExists(QString filePath);
+ QString scenPath(QString scenName);
QString listScenarios(QString commandArgs);
QString printQueue();
void ircCheckModCmd(const QString &nick, CmdFunctionRef func, QString arg = "");
@@ -180,6 +179,12 @@ private:
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);
@@ -214,6 +219,8 @@ private:
CMD_FUNCTION(reload);
CMD_FUNCTION(saveConfig);
+ CMD_FUNCTION(reconnectIrc);
+
IRC_CHECK_CALLBACK(ircSetAdmin);
IRC_CHECK_CALLBACK(ircModCmd);
};