summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/crsm.cpp30
-rw-r--r--src/crsm.hpp1
2 files changed, 31 insertions, 0 deletions
diff --git a/src/crsm.cpp b/src/crsm.cpp
index da8c70c..72c5167 100644
--- a/src/crsm.cpp
+++ b/src/crsm.cpp
@@ -1343,6 +1343,7 @@ void CRSM::setupCmds()
cmdGroups.clear();
addCommand("admin", &CRSM::admin, Clonk | IRC, User, "Ohne Name trägt es den Autor der Nachricht als Rundenadmin ein, bzw. mit Name den Spieler mit entsprechendem Namen, insofern nicht bereits ein Rundenadmin feststeht.", "[Chatnick¦PC-Name]");
+ addCommand("admin?", &CRSM::getAdmin, Clonk | IRC, User, "Fragt den aktuellen Rundenadmin ab.");
addCommand("ingameadmin", &CRSM::ingameadmin, IRC | Management, Admin, "Legt den Ingame-Rundenadmin fest.", "<Ingame-Nick¦PC-Name>");
addCommand("noadmin", &CRSM::noadmin, Clonk | IRC | Management, Admin, "Entzieht dem (IRC-)Rundenadmin seine Rechte, damit jemand anders Rundenadmin sein kann.");
@@ -2315,6 +2316,35 @@ CMD_FUNCTION_IMPL(ircWatch)
}
}
+CMD_FUNCTION_IMPL(getAdmin)
+ if(Session.IRC.Admin.empty() && Session.Clonk.Admin.empty())
+ {
+ respond(client, "Zurzeit gibt es keinen Rundenadmin.\n");
+ }
+ else
+ {
+ QString response;
+ int count = 0;
+ if(!Session.IRC.Admin.empty())
+ {
+ response = Session.IRC.Admin.toString();
+ ++count;
+ }
+ if(!Session.Clonk.Admin.empty())
+ {
+ if(count > 0)
+ {
+ response.append(" und ");
+ }
+ response.append(Session.Clonk.Admin.toString());
+ ++count;
+ }
+ response.append(count > 1 ? " sind " : " ist ");
+ response.append("Rundenadmin.\n");
+ respond(client, response);
+ }
+}
+
IRC_CHECK_CALLBACK_IMPL(ircSayQuery)
if(status <= 0)
{
diff --git a/src/crsm.hpp b/src/crsm.hpp
index 3e11054..b5fcd1f 100644
--- a/src/crsm.hpp
+++ b/src/crsm.hpp
@@ -280,6 +280,7 @@ private:
CMD_FUNCTION(passToClonkNumeric);
CMD_FUNCTION(passToClonkNumericOrEmpty);
CMD_FUNCTION(admin);
+ CMD_FUNCTION(getAdmin);
CMD_FUNCTION(host);
CMD_FUNCTION(list);
CMD_FUNCTION(queue);