tried to reorder the program structure and build process
[NeonServV5.git] / cmd_neonserv_voice.c
diff --git a/cmd_neonserv_voice.c b/cmd_neonserv_voice.c
deleted file mode 100644 (file)
index 45a78a9..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-
-#include "cmd_neonserv.h"
-
-/*
-* argv[0-*]    nicks
-*/
-static USERLIST_CALLBACK(neonserv_cmd_voice_userlist_lookup);
-static void neonserv_cmd_voice_async1(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, char *nicks);
-
-struct neonserv_cmd_voice_cache {
-    struct ClientSocket *client, *textclient;
-    struct UserNode *user;
-    struct Event *event;
-    char *nicks;
-};
-
-CMD_BIND(neonserv_cmd_voice) {
-    struct neonserv_cmd_voice_cache *cache = malloc(sizeof(*cache));
-    if (!cache) {
-        perror("malloc() failed");
-        return;
-    }
-    cache->client = client;
-    cache->textclient = getTextBot();
-    cache->user = user;
-    cache->event = event;
-    cache->nicks = strdup(merge_argv(argv, 0, argc));
-    get_userlist_with_invisible(chan, neonserv_cmd_voice_userlist_lookup, cache);
-}
-
-static USERLIST_CALLBACK(neonserv_cmd_voice_userlist_lookup) {
-    struct neonserv_cmd_voice_cache *cache = data;
-    neonserv_cmd_voice_async1(cache->client, cache->textclient, cache->user, chan, cache->event, cache->nicks);
-    free(cache->nicks);
-    free(cache);
-}
-
-static void neonserv_cmd_voice_async1(struct ClientSocket *client, struct ClientSocket *textclient, struct UserNode *user, struct ChanNode *chan, struct Event *event, char *nicks) {
-    int total_users = 0, done_users = 0;
-    struct UserNode *cuser;
-    struct ChanUser *chanuser;
-    struct ModeBuffer *modeBuf;
-    modeBuf = initModeBuffer(client, chan);
-    char *a, *b = nicks;
-    do {
-        a = strstr(b, " ");
-        if(a) *a = '\0';
-        total_users++;
-        cuser = searchUserByNick(b);
-        if(!cuser) {
-            //check for an invisible user
-            for(chanuser = getChannelUsers(chan, NULL); chanuser; chanuser = getChannelUsers(chan, chanuser)) {
-                if(!stricmp(chanuser->user->nick, b)) {
-                    cuser = chanuser->user;
-                    break;
-                }
-            }
-            if(!cuser) continue;
-        } else {
-            chanuser = getChanUser(cuser, chan);
-            if(!chanuser) continue;
-        }
-        done_users++;
-        if(chanuser->flags & CHANUSERFLAG_VOICED) continue;
-        modeBufferVoice(modeBuf, b);
-        if(a) {
-            b = a+1;
-        }
-    } while(a);
-    freeModeBuffer(modeBuf);
-    if(done_users == total_users)
-        reply(textclient, user, "NS_VOICE_DONE", chan->name);
-    else
-        reply(textclient, user, "NS_VOICE_FAIL", client->user->nick);
-    if(done_users)
-        logEvent(event);
-}