And yet I still feel unsatisfied. I think you can use multiple /modes in 1 line, can't you? Not sure about the bans and such, but I'm sure you can, no?
on *:text:*:#:{
var %1 = $remove($1,!), %2 = $2-, %c = $chan, %n = $nick, %a = $iif($address(%2,2),$v1,%2)
if ($nick isop $chan) {
if ((j isin %1) || (p isin %1)) {
msg $chan $iif(j isin %1,Join,Part) $+ ing %2 %n
$remove(%1,!) %2
}
}
if (%1 == topic) { topic %c %2 }
if (%1 == vop) { mode %c +v %2 }
if (%1 == devop) { mode %c -v %2 }
if (%1 == hop) { mode %c +h %2 }
if (%1 == dehop) { mode %c -h %2 }
if (%1 == op) { mode %c +o %2 }
if (%1 == deop) { mode %c -o %2 }
if (%1 == Admin) { mode %c +a %2 }
if (%1 == Deadmin) { mode %c -a %2 }
if (%1 == owner) { mode %c +q %2 }
if (%1 == Deowner) { mode %c -q %2 }
if (%1 == kick) { kick %c %2 }
if (%1 == ban) { mode %c +b %a | kick %c %2 }
if (%1 == unban) { mode %c -b %a }
if (%1 == Moderate) { mode %c +m }
if (%1 == Unmoderate) { mode %c -m }
if (%1 == Censor) { mode %c +G }
if (%1 == Uncensor) { mode %c -G }
if (%1 == QuietBan) { mode %c -aohv+b ~q: $+ %a %2 }
if (%1 == UnQuiet) { mode %c -b+v ~q: $+ %a %2 | mode %c +v %2 }
}
You will want to test this out for yourself, of course, as my network didn't support +a or +h.