added cmd_global
authorpk910 <philipp@zoelle1.de>
Thu, 22 Mar 2012 19:52:31 +0000 (20:52 +0100)
committerpk910 <philipp@zoelle1.de>
Thu, 22 Mar 2012 19:54:50 +0000 (20:54 +0100)
Makefile.am
src/modules/global.mod/cmd_global.c
src/modules/global.mod/cmd_global.h
src/modules/global.mod/cmd_global_global.c [new file with mode: 0644]

index 6daebad4e2cc7966bd0bcc1114e84eb0a01de9ea..e125423a63664036c31551184b08a71240ab0f5d 100644 (file)
@@ -49,6 +49,7 @@ libglobalcmd_la_SOURCES = src/modules/global.mod/cmd_global.c \
       src/modules/global.mod/cmd_global_meminfo.c \
       src/modules/global.mod/cmd_global_extscript.c \
       src/modules/global.mod/cmd_global_move.c \
+      src/modules/global.mod/cmd_global_global.c \
       src/modules/global.mod/module.c
 libglobalcmd_la_LDFLAGS = -module -rpath /nowhere -avoid-version -no-undefined
 libglobalcmd_la_LIBADD = $(MYSQL_LIBS)
index 9668746bf1379dc0b2cdc5d321a0ff37e6f0e7bb..008fa8b6f39fda2baf73c92110434e1243c5c90a 100644 (file)
@@ -57,5 +57,6 @@ void register_commands() {
     OPER_COMMAND("reconnect",    global_cmd_reconnect, 0,     1000, CMDFLAG_REQUIRE_AUTH | CMDFLAG_CHECK_AUTH | CMDFLAG_OPLOG);
     OPER_COMMAND("modcmd",       global_cmd_modcmd,    1,     900,  CMDFLAG_REQUIRE_AUTH | CMDFLAG_CHECK_AUTH | CMDFLAG_OPLOG | CMDFLAG_REQUIRED | CMDFLAG_ESCAPE_ARGS);
     OPER_COMMAND("meminfo",      global_cmd_meminfo,   0,     1000, CMDFLAG_REQUIRE_AUTH | CMDFLAG_CHECK_AUTH);
+    OPER_COMMAND("global",       global_cmd_global,    1,     1000, CMDFLAG_REQUIRE_AUTH | CMDFLAG_CHECK_AUTH | CMDFLAG_OPLOG);
     #undef OPER_COMMAND
 }
\ No newline at end of file
index 6db037c372f5ac319f38566637664493dd06ce12..b1f80beb2642093c1316f0b7600693ef8344eac1 100644 (file)
@@ -49,6 +49,7 @@ CMD_BIND(global_cmd_delbot);
 CMD_BIND(global_cmd_die);
 CMD_BIND(global_cmd_emote);
 CMD_BIND(global_cmd_extscript);
+CMD_BIND(global_cmd_global);
 CMD_BIND(global_cmd_god);
 CMD_BIND(global_cmd_meminfo);
 CMD_BIND(global_cmd_modcmd);
diff --git a/src/modules/global.mod/cmd_global_global.c b/src/modules/global.mod/cmd_global_global.c
new file mode 100644 (file)
index 0000000..dfe8e7f
--- /dev/null
@@ -0,0 +1,36 @@
+/* cmd_global_global.c - NeonServ v5.4
+ * Copyright (C) 2011-2012  Philipp Kreil (pk910)
+ * 
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ * 
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ * 
+ * You should have received a copy of the GNU General Public License 
+ * along with this program. If not, see <http://www.gnu.org/licenses/>. 
+ */
+
+#include "cmd_global.h"
+
+/*
+* argv[0-*]  message
+*/
+
+CMD_BIND(global_cmd_global) {
+    char *message = merge_argv(argv, 0, argc);
+    //send message to all channels
+    struct ClientSocket *bot;
+    for(bot = getBots(SOCKET_FLAG_READY, NULL); bot; bot = getBots(SOCKET_FLAG_READY, bot)) {
+        if(bot->botid == client->botid && (bot->botid || bot->clientid == client->clientid)) {
+            struct ChanUser *chanuser;
+            for(chanuser = getUserChannels(bot->user, NULL); chanuser; chanuser = getUserChannels(bot->user, chanuser)) {
+                putsock(client, "PRIVMSG %s :%s", chanuser->chan->name, message);
+            }
+        }
+    }
+}
\ No newline at end of file