808a46fd40883d0f1b7daa4e3d6ea83aef635385
[NeonServV5.git] / cmd_neonserv_unbanme.c
1
2 #include "cmd_neonserv.h"
3
4 /*
5 * argv[0-*]    nothing
6 */
7
8 CMD_BIND(neonserv_cmd_unbanme) {
9     struct ModeBuffer *modeBuf;
10     int bans = 0;
11     struct BanNode *ban;
12     modeBuf = initModeBuffer(client, chan);
13     char usermask[NICKLEN+USERLEN+HOSTLEN+3];
14     sprintf(usermask, "%s!%s@%s", user->nick, user->ident, user->host);
15     for(ban = chan->bans; ban; ban = ban->next) {
16         if(!match(ban->mask, usermask)) {
17             modeBufferUnban(modeBuf, ban->mask);
18             bans++;
19         }
20     }
21     freeModeBuffer(modeBuf);
22     if(bans) {
23         reply(getTextBot(), user, "NS_UNBANME_DONE", bans, chan->name);
24         logEvent(event);
25     } else
26         reply(getTextBot(), user, "NS_UNBANME_FAIL", client->user->nick, usermask);
27 }