summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/crsm.cpp21
-rw-r--r--src/crsm.hpp2
2 files changed, 18 insertions, 5 deletions
diff --git a/src/crsm.cpp b/src/crsm.cpp
index b638bd9..e0fb715 100644
--- a/src/crsm.cpp
+++ b/src/crsm.cpp
@@ -1539,10 +1539,16 @@ void CRSM::setupCmds()
addCommand("admin ingame", &CRSM::ingameadmin, IRC | Management, Admin, "Legt den Ingame-Rundenadmin fest.", "<Ingame-Nick¦PC-Name>");
addCommand("admin clear", &CRSM::noadmin, Clonk | IRC | Management, Admin, "Entzieht dem (IRC-)Rundenadmin seine Rechte, damit jemand anders Rundenadmin sein kann.");
+ addCommandGroup("client", Clonk | IRC | Management, User, "Verwaltet die verbundenen Clients.");
+ addCommand("client list", &CRSM::clientlist, IRC | Management, User, "Listet alle verbundenen Clients auf.");
+ addCommand("client kick", &CRSM::passToClonkPcNameGrouped, Clonk | IRC | Management, Admin, "Kickt den angegebenen Client.", "<PC-Name¦Chatnick>");
+ addCommand("client observer", &CRSM::passToClonkPcNameGrouped, Clonk | IRC | Management, Admin, "Der angegebene Client muss zuschauen.", "<PC-Name¦Chatnick>");
+ addCommand("client deactivate", &CRSM::passToClonkPcNameGrouped, Clonk | IRC | Management, Admin, "Deaktiviert den angegebenen Client.", "<PC-Name¦Chatnick>");
+ addCommand("client activate", &CRSM::passToClonkPcNameGrouped, Clonk | IRC | Management, Admin, "Aktiviert den angegebenen Client.", "<PC-Name¦Chatnick>");
+
addCommand("queue", &CRSM::queue, Clonk | IRC | Management, User, "Zeigt die nächsten " + QString::number(Config.Hosting.UserListLength) + " Szenarien auf der Warteliste.");
addCommand("host", &CRSM::host, Clonk | IRC | Management, User, "Nimmt das angegebene Szenario in die Warteschlange auf. Optional in der Liga, wenn \"--league\" angegeben wird.", "[--league] <[Rundenordner[.c4f]/]Szenarioname¦Alias>");
addCommand("list", &CRSM::list, Clonk | IRC | Management, User, "Listet alle definierten Aliase oder alle möglichen Szenarien und Ordner auf, bzw. alle Szenarien im Ordner oder Rundenordner.", "[Aliase¦Rundenordner[.c4f]]");
- addCommand("clientlist", &CRSM::clientlist, IRC | Management, User, "Listet alle verbundenen Clients mit PC-Name und Chatnick auf.");
addCommand("help", &CRSM::help, Clonk | IRC | Management, User, "Zeigt die Hilfe an.", "[long¦Befehlsname]", "Listet alle verfügbaren Befehle auf. Mit long werden alle verfügbaren Befehle mit Kurzbeschreibung aufgelistet.");
addCommand("stop", &CRSM::passToClonk, Clonk | IRC | Management, Admin, "Stoppt einen laufenden Countdown.");
addCommand("start", &CRSM::passToClonkNumericOrEmpty, Clonk | IRC | Management, Admin, "Startet den Countdown.", "[Countdownzeit in s]");
@@ -1550,10 +1556,6 @@ void CRSM::setupCmds()
addCommand("plrteam", &CRSM::passToClonk, Clonk | IRC, Admin, "Ändert das Team eines Spielers.", "<Spieler> <neues Team>", "Verschiebt <Spieler> in das <neue Team>.");
addCommand("pause", &CRSM::passToClonk, Clonk | IRC | Management, Admin, "Pausiert das Spiel.");
addCommand("unpause", &CRSM::passToClonk, Clonk | IRC | Management, Admin, "Setzt das pausierte Spiel fort.");
- addCommand("observer", &CRSM::passToClonkPcName, Clonk | IRC | Management, Admin, "Der angegebene Host muss zuschauen.", "<PC-Name¦Chatnick>");
- addCommand("deactivate", &CRSM::passToClonkPcName, Clonk | IRC | Management, Admin, "Deaktiviert den angegebenen Host.", "<PC-Name¦Chatnick>");
- addCommand("activate", &CRSM::passToClonkPcName, Clonk | IRC | Management, Admin, "Aktiviert den angegebenen Host.", "<PC-Name¦Chatnick>");
- addCommand("kick", &CRSM::passToClonkPcName, Clonk | IRC | Management, Admin, "Kickt den angegebenen Host.", "<PC-Name¦Chatnick>");
addCommand("script", &CRSM::passToClonk, Clonk | IRC | Management, Admin, "Führt das angegebene Script aus.", "<Script>");
addCommand("asyncctrl", &CRSM::passToClonk, Clonk | IRC | Management, Admin, "Aktiviert den asynchronen Netzwerkmodus.");
addCommand("centralctrl", &CRSM::passToClonk, Clonk | IRC | Management, Admin, "Aktiviert den zentralen Netzwerkmodus.");
@@ -2468,6 +2470,11 @@ CMD_FUNCTION_IMPL(passToClonk)
return Success;
}
+CMD_FUNCTION_IMPL(passToClonkGrouped)
+ writeToServer('/' + cmd.split(' ').last() + ' ' + args + '\n');
+ return Success;
+}
+
CMD_FUNCTION_IMPL(admin)
if(Session.State == CRSMSession::None)
{
@@ -2903,6 +2910,10 @@ CMD_FUNCTION_IMPL(passToClonkPcName)
return Success;
}
+CMD_FUNCTION_IMPL(passToClonkPcNameGrouped)
+ return passToClonkPcName(cmd.split(' ').last(), args, client, userType);
+}
+
CMD_FUNCTION_IMPL(ircadmin)
if(args.isEmpty())
{
diff --git a/src/crsm.hpp b/src/crsm.hpp
index 5b09d75..45c4aea 100644
--- a/src/crsm.hpp
+++ b/src/crsm.hpp
@@ -320,6 +320,7 @@ private:
CMD_FUNCTION(help);
CMD_FUNCTION(passToClonk);
+ CMD_FUNCTION(passToClonkGrouped);
CMD_FUNCTION(passToClonkOnOff);
CMD_FUNCTION(passToClonkNumeric);
CMD_FUNCTION(passToClonkNumericOrEmpty);
@@ -342,6 +343,7 @@ private:
CMD_FUNCTION(modinfo);
CMD_FUNCTION(io);
CMD_FUNCTION(passToClonkPcName);
+ CMD_FUNCTION(passToClonkPcNameGrouped);
CMD_FUNCTION(ingameadmin);
CMD_FUNCTION(ircadmin);
CMD_FUNCTION(noadmin);