argc++;
}
if (argc) {
- extern struct userNode *opserv;
struct mod_chanmode *change;
change = mod_chanmode_alloc(argc);
}
}
assert(argc == change->argc);
- if (change->argc > 0)
- mod_chanmode_announce(change->args[0].member->user, cNode, change);
- else
- mod_chanmode_announce(opserv, cNode, change);
+ change->args[0].member->modes &= ~MODE_CHANOP;
+ mod_chanmode_announce(change->args[0].member->user, cNode, change);
mod_chanmode_free(change);
}
}
if (!mNode)
return;
+ for (n=0; n<pf_used; n++)
+ pf_list[n](mNode, reason);
+
/* remove modeNode from channel and user */
modeList_remove(&channel->members, mNode);
modeList_remove(&user->channels, mNode);
free(mNode);
- for (n=0; n<pf_used; n++)
- pf_list[n](user, channel, reason);
-
if (!deleting && !channel->members.used && !channel->locks)
DelChannel(channel);
}