From 6dc0eddef4e743352c36ea8d90f684f8fd424559 Mon Sep 17 00:00:00 2001 From: Markus Mittendrein Date: Fri, 12 Jun 2015 01:56:58 +0200 Subject: Added basic antiflood. Release round admin when he is leaving, but he can regain it in a specified time. --- crsm.hpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'crsm.hpp') 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 settings; QMap session; QMap clients; - QStringList greeted; QMap lists; QMap> maps; IrcConnection *connection = 0; @@ -128,6 +127,7 @@ private: QSignalMapper greetMapper; ClientInfo sessionAdmin; ClientInfo ircAdmin; + QMap leaveAdmins; QFile *logfile; QTextStream logstream; QTextCodec *codec; @@ -143,10 +143,9 @@ private: void startScen(const ScenarioSettings& scen, QStringList); void readConfig(); void readScenarios(); - QMap 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); }; -- cgit v1.2.3-54-g00ecf