static int flags[] = {
MODE_CHANOP, 'o',
MODE_VOICE, 'v',
+ MODE_HALFOP, 'h',
MODE_PRIVATE, 'p',
MODE_SECRET, 's',
MODE_MODERATED, 'm',
}
/* Deal with users on the channel */
- if (del_mode & (MODE_BAN | MODE_CHANOP | MODE_VOICE))
+ if (del_mode & (MODE_BAN | MODE_CHANOP | MODE_HALFOP | MODE_VOICE))
for (member = chptr->members; member; member = member->next_member) {
if (IsZombie(member)) /* we ignore zombies */
continue;
modebuf_mode_client(&mbuf, MODE_DEL | MODE_CHANOP, member->user, MAXOPLEVEL + 1);
member->status &= ~CHFL_CHANOP;
}
+
+ /* Drop halfop */
+ if (IsHalfOp(member) && del_mode & MODE_HALFOP) {
+ modebuf_mode_client(&mbuf, MODE_DEL | MODE_HALFOP, member->user, MAXOPLEVEL + 1);
+ member->status &= ~CHFL_HALFOP;
+ }
/* Drop voice */
if (HasVoice(member) && del_mode & MODE_VOICE) {