2 #include "cmd_neonserv.h"
5 * argv[0] (optional) nick mask
8 CMD_BIND(neonserv_cmd_devoiceall) {
9 int issuer_access, victim_access, done_users = 0;
10 char *nickmask = NULL;
11 struct ChanUser *chanuser;
12 struct ModeBuffer *modeBuf;
14 if(!checkChannelAccess(user, chan, "channel_canvoice", 1, 0)) {
15 reply(getTextBot(), user, "NS_ACCESS_DENIED");
20 modeBuf = initModeBuffer(client, chan);
21 issuer_access = getChannelAccess(user, chan, 0);
22 for(chanuser = getChannelUsers(chan, NULL); chanuser; chanuser = getChannelUsers(chan, chanuser)) {
23 if(nickmask && match(nickmask, chanuser->user->nick)) continue;
24 victim_access = getChannelAccess(user, chan, 0);
25 if(victim_access >= issuer_access) continue;
26 if(!(chanuser->flags & CHANUSERFLAG_VOICED)) continue;
27 modeBufferDevoice(modeBuf, chanuser->user->nick);
30 freeModeBuffer(modeBuf);
31 reply(getTextBot(), user, "NS_DEVOICEALL_DONE", done_users, chan->name);