added .gitignore
[NeonServV5.git] / modcmd.c
index ead1efd8029735ddbad468e3f65d5b8e3e2efaa6..6db797b257733afaa03b4061cd45054f7c7b06f4 100644 (file)
--- a/modcmd.c
+++ b/modcmd.c
@@ -64,7 +64,7 @@ static char* get_channel_trigger(int botid, struct ChanNode *chan) {
 static void handle_command(struct ClientSocket *client, struct UserNode *user, struct ChanNode *chan, char *message) {
     if(message[0] == '#') {
         char *chanName = message;
-        message = strstr(message, ' ');
+        message = strstr(message, " ");
         if(!message) return;
         *message = '\0';
         message++;
@@ -81,45 +81,35 @@ static void handle_command(struct ClientSocket *client, struct UserNode *user, s
     struct cmd_binding *cbind;
     for(cbind = cmd_binds[bind_index]; cbind; cbind = cbind->next) {
         if(cbind->botid == client->botid && strcmp(cbind->cmd, message) == 0) {
-            struct cmd_function *cmdfunc = cbind->func;
             //parse the arguments...
-            char *argv[MAXNUMPARAMS];
+            char *arga[MAXNUMPARAMS];
+            char **argv;
             int argc = 0;
-            while(*args) {
-                //skip leading spaces
-                while (*args == ' ')
-                    *args++ = 0;
-                argv[argc++] = args;
-                if (argc >= MAXNUMPARAMS)
-                    break;
-                while (*args != ' ' && *args)
-                    args++;
+            if(args) {
+                while(*args) {
+                    //skip leading spaces
+                    while (*args == ' ')
+                        *args++ = 0;
+                    arga[argc++] = args;
+                    if (argc >= MAXNUMPARAMS)
+                        break;
+                    while (*args != ' ' && *args)
+                        args++;
+                }
             }
-            if(argc != 0 && args[0][0] == '#') {
-                struct ChanNode *chan2 = getChanByName(args[0]);
+            argv = arga;
+            if(argc != 0 && argv[0][0] == '#') {
+                struct ChanNode *chan2 = getChanByName(argv[0]);
                 if(chan2) {
                     argv += 1;
                     argc -= 1;
                     chan = chan2;
                 }
             }
-            cmdfunc->func(client, user, chan, argv, argc);
+            cbind->func->func(client, user, chan, argv, argc);
             return;
         }
     }
-    
-    if(!strcmp(message, "users")) {
-        struct ChanUser *chanuser;
-        putsock(client, "PRIVMSG %s :[BOT JOIN] Users on this Channel:", chan->name);
-        for(chanuser = getChannelUsers(chan, NULL); chanuser; chanuser = getChannelUsers(chan, chanuser)) {
-            putsock(client, "PRIVMSG %s :  %s!%s@%s [%s]  rights: %d", chan->name, chanuser->user->nick, chanuser->user->ident, chanuser->user->host, ((chanuser->user->flags & USERFLAG_ISAUTHED) ? chanuser->user->auth : "*"), chanuser->flags);
-        }
-    }
-    if(!strcmp(message, "modes")) {
-        char modeBuf[MAXLEN];
-        getModeString(chan, modeBuf);
-        putsock(client, "PRIVMSG %s :Modes: %s", chan->name, modeBuf);
-    }
 }
 
 static void got_chanmsg(struct UserNode *user, struct ChanNode *chan, char *message) {