From: z411 Date: Wed, 22 Dec 2021 00:52:55 +0000 (-0300) Subject: Add SMB Modpack IRCSay command X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=981d4dd74ee38d6ee7fbdc3323d4e283be985237;p=xonotic%2Fxonotic-data.pk3dir.git Add SMB Modpack IRCSay command --- diff --git a/qcsrc/server/command/sv_cmd.qc b/qcsrc/server/command/sv_cmd.qc index 698230278..a0770cab7 100644 --- a/qcsrc/server/command/sv_cmd.qc +++ b/qcsrc/server/command/sv_cmd.qc @@ -979,6 +979,46 @@ void GameCommand_gotomap(int request, int argc) } } +void GameCommand_ircmsg(int request, int argc, string command) +{ + /* IRCSay from the SMB Modpack */ + switch (request) + { + case CMD_REQUEST_COMMAND: + { + string msgstr = substring(command, strlen(argv(0))+1, strlen(command)); + + if(msgstr == "") + return; + + string prefix; + if(substring(msgstr, 0, 3) == "^4*") // actions + prefix = "\{3}"; + else + prefix = "\{1}"; + + msgstr = strcat(prefix, strreplace("\n", " ", msgstr), "\n"); // newlines only are good for centerprint + + FOREACH_CLIENTSLOT(true, + { + if(!intermission_running) + if((autocvar_g_chat_nospectators == 1) || (autocvar_g_chat_nospectators == 2 && !(warmup_stage || game_stopped))) + if(IS_PLAYER(it)) + continue; + if(IS_REAL_CLIENT(it)) + sprint(it, msgstr); + }); + } + + default: + case CMD_REQUEST_USAGE: + { + LOG_HELP("Usage:^3 sv_cmd ircmsg message"); + return; + } + } +} + void GameCommand_lockteams(int request) { switch (request)