X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=cmd_neonserv_voice.c;h=45a78a921f501940b82dc85143534b7dafef49ac;hb=795115bf680185ae01043bd1222b78bfed8c1d87;hp=d4e385ded2981cfeae5ee9c652144c2e194f43ca;hpb=783992c8c47d0ef40d0cf127fa7626bc24b7b703;p=NeonServV5.git diff --git a/cmd_neonserv_voice.c b/cmd_neonserv_voice.c index d4e385d..45a78a9 100644 --- a/cmd_neonserv_voice.c +++ b/cmd_neonserv_voice.c @@ -1,17 +1,20 @@ +#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, char *nicks); +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; }; -static CMD_BIND(neonserv_cmd_voice) { +CMD_BIND(neonserv_cmd_voice) { struct neonserv_cmd_voice_cache *cache = malloc(sizeof(*cache)); if (!cache) { perror("malloc() failed"); @@ -20,18 +23,19 @@ static CMD_BIND(neonserv_cmd_voice) { 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->nicks); + 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, char *nicks) { +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; @@ -68,4 +72,6 @@ static void neonserv_cmd_voice_async1(struct ClientSocket *client, struct Client reply(textclient, user, "NS_VOICE_DONE", chan->name); else reply(textclient, user, "NS_VOICE_FAIL", client->user->nick); + if(done_users) + logEvent(event); }