Code:
menu nicklist {
!Info: uwho $$1-
!Whois: MassCommand whois 0 $$1-
!Query: MassCommand query 0 $$1-
-
!Control
.Admin +: changeState +q $$1-
.Admin -: changeState +q $$1-
.Sop +: changeState +a $$1-
.Sop -: changeState -a $$1-
.Op +: changeState +o $$1-
.Op -: changeState -o $$1-
.Half Op +: changeState +h $$1-
.Half Op -: changeState -h $$1-
.Voice +: changeState +v $$1-
.Voice -: changeState -v $$1-
.-
.Kick: kickUser -n $$1-
.Kick (reason): kickUser -r $$1-
.Ban
..Default: banUser 2 + $$1-
..*!user@host: banUser 0 + $$1-
..*!*user@host: banUser 1 + $$1-
..*!*@host: banUser 2 + $$1-
..*!*user@*.host: banUser 3 + $$1-
..*!*@*.host: banUser 4 + $$1-
..nick!user@host: banUser 5 + $$1-
..nick!*user@host: banUser 6 + $$1-
..nick!*@host: banUser 7 + $$1-
..nick!*user@*.host: banUser 8 + $$1-
..nick!*@*.host: banUser 9 + $$1-
.Kick ban
..Default: kickBan -n 2 $$1-
..*!user@host: kickBan -n 0 $$1-
..*!*user@host: kickBan -n 1 $$1-
..*!*@host: kickBan -n 2 $$1-
..*!*user@*.host: kickBan -n 3 $$1-
..*!*@*.host: kickBan -n 4 $$1-
..nick!user@host: kickBan -n 5 $$1-
..nick!*user@host: kickBan -n 6 $$1-
..nick!*@host: kickBan -n 7 $$1-
..nick!*user@*.host: kickBan -n 8 $$1-
..nick!*@*.host: kickBan -n 9 $$1-
.Kick ban (reason)
..Default: kickBan -r 2 $$1-
..*!user@host: kickBan -r 0 $$1-
..*!*user@host: kickBan -r 1 $$1-
..*!*@host: kickBan -r 2 $$1-
..*!*user@*.host: kickBan -r 3 $$1-
..*!*@*.host: kickBan -r 4 $$1-
..nick!user@host: kickBan -r 5 $$1-
..nick!*user@host: kickBan -r 6 $$1-
..nick!*@host: kickBan -r 7 $$1-
..nick!*user@*.host: kickBan -r 8 $$1-
..nick!*@*.host: kickBan -r 9 $$1-
.-
.Unban: banUser 0 - $$1-
!CTCP
.Ping: MassCommand ctcp ping $$1-
.Time: MassCommand ctcp time $$1-
.Version: MassCommand ctcp version $$1-
!DCC
.Send: dcc send $$1
.Chat: massCommand dcc chat $$1-
-
!Insult: msg $chan Look at all the strawberry nubcakes: $$1-
}
alias -l changeState {
var %x = 1, %users, %plus = $mid($1,1,1), %letter = $mid($1,2,1), %u, %m = $iif($modespl,$ifmatch,3)
tokenize 32 $2-
while (%x <= $0) {
%u = $($+($,%x),2)
if ($nick($active,%u,%letter) && (%plus == -)) || (!$nick($active,%u,%letter) && (%plus == +)) %users = %users %u
if ($numtok(%users,32) == %m) {
mode $active $+(%plus,$str(%letter,$v2)) %users
%users = $null
}
inc %x
}
if (%users) mode $active $+(%plus,$str(%letter,$numtok(%users,32))) %users
}
alias -l kickUser {
var %x = 1, %reason = $iif($1 == -r,$?="Reason:",$null)
tokenize 32 $2-
while (%x <= $0) {
kick $active $($+($,%x),2) %reason
inc %x
}
}
alias -l matchAddress {
var %x = 1, %user = $1, %chan = $2, %address = $address(%user,5), %a
while ($ibl(%chan,%x)) {
if ($ifmatch iswm %address) %a = %a $v1
inc %x
}
return %a
}
alias -l banUser {
var %x = 1, %num = $1, %plus = $2, %y = 1, %u, %users, %m = $iif($modespl,$ifmatch,3), %n
tokenize 32 $3-
while (%x <= $0) {
%u = $($+($,%x),2)
if (%plus == +) %users = %users $address(%u,%num)
elseif ($matchAddress(%u,$active)) %users = %users $ifmatch
while ($numtok(%users,32) >= %m) {
%n = $iif($v1 >= %m,%m,$v1)
mode $active $+(%plus,$str(b,%n)) $gettok(%users,$+(1-,%n),32)
%users = $gettok(%users,$+($calc(%n + 1),-),32)
}
%y = 1
inc %x
}
if (%users) mode $active $+(%plus,$str(b,$numtok(%users,32))) %users
}
alias -l kickBan {
banUser $2 + $3-
kickUser $1 $3-
}
alias -l massCommand {
var %x = 1, %n = $numtok($3-,32)
while (%x <= %n) {
$1 $iif($1 == dcc,$2,$null) $gettok($3-,%x,32) $iif($2 && $2 != dcc,$2,$null)
inc %x
}
}