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