6994679960209043fbeec2d7bea23abb798dd789
[NeonServV5.git] / cmd_neonserv_devoice.c
1
2 #include "cmd_neonserv.h"
3
4 /*
5 * argv[0-*]    nicks
6 */
7
8 CMD_BIND(neonserv_cmd_devoice) {
9     int i, done_users = 0;
10     struct UserNode *cuser;
11     struct ChanUser *chanuser;
12     struct ModeBuffer *modeBuf;
13     modeBuf = initModeBuffer(client, chan);
14     for(i = 0; i < argc; i++) {
15         cuser = searchUserByNick(argv[i]);
16         if(!cuser) continue;
17         chanuser = getChanUser(cuser, chan);
18         if(!chanuser) continue;
19         if(isUserProtected(chan, cuser, user)) {
20             reply(getTextBot(), user, "NS_USER_PROTECTED", cuser->nick);
21             continue;
22         }
23         done_users++;
24         if(!(chanuser->flags & CHANUSERFLAG_VOICED)) continue;
25         modeBufferDevoice(modeBuf, argv[i]);
26     }
27     freeModeBuffer(modeBuf);
28     if(done_users == argc)
29         reply(getTextBot(), user, "NS_DEVOICE_DONE", chan->name);
30     else
31         reply(getTextBot(), user, "NS_DEVOICE_FAIL", client->user->nick);
32     if(done_users)
33         logEvent(event);
34 }