$_MODESPL = 4; on repl_005 { local('$word'); foreach $word (split(' ',$parms)) { if ("MODES=*" iswm $word) { $_MODESPL = getToken(tokenize($word,'='),1); } } } menu channel { menu "&Mass" { menu "Mode" { item "&Op" { call("/mass +o $active"); } item "&Voice" { call("/mass +v $active"); } item "&Hop" { call("/mass +h $active"); } addSeparator(); item "&DeOp" { call("/mass -o $active"); } item "&Devoice" { call("/mass -v $active"); } item "&DeHop" { call("/mass -h $active"); } } menu "Kick" { item "Ops" { call("/masskick -o"); } item "Voiced" { call("/masskick -v"); } item "HalfOps" { call("/masskick -h"); } item "All users" { call("/masskick -a"); } } } } alias mop { call("/mass +o " . ifChannel($1)); } alias mdop { call("/mass -o " . ifChannel($1)); } alias mv { call("/mass +v " . ifChannel($1)); } alias mdv { call("/mass -v " . ifChannel($1)); } alias mhop { call("/mass +h " . ifChannel($1)); } alias mdhop { call("/mass -h " . ifChannel($1)); } sub ifChannel { local('$c'); $c = $active; if ($me ison $1) { $c = $1; } return $c; } # /masskick <-ovha> <#channel> [kick message] alias masskick { local('$regex $chan $kmsg $l $m $n'); $regex = "^-([ovha])"; $chan = ifChannel($2); $kmsg = $3-; if ($2 ne "" && $2 ne $chan) { $kmsg = $2-; } else if ($3 eq "" || $2 eq "") { $kmsg = ":mass kick (\bLiCe\b)"; } if ($me !isop $chan) { echo("You need ops to do that."); halt; } if ($1 ismatch $regex) { @m = matches($1,$regex); $m = @m[0]; if ($m eq "o") { @users = getOps($chan); } else if ($m eq "v") { @users = getVoiced($chan); } else if ($m eq "h") { @users = getHalfOps($chan); } else if ($m eq "a") { @users = getUsers($chan); } foreach $n (@users) { if ($n ne $me) { $l = $l . "KICK $chan $n $kmsg" . chr(10); } } if ($l) { sendRaw("$l"); } echo("*** Mass kick complete."); } } # /mass <+|-> <#channel> alias mass { if ($me !isop $2) { echo("You're not op in that channel."); return; } $pre = left($1,1); $chr = right($1,1); if ($pre isin '+-' && $chr isin "ovh") { if ($pre eq '+') { @users = getNormal($2); } else { if ($chr eq 'o') { @users = getOps($2); } else if ($chr eq 'v') { @users = getVoiced($2); } else if ($chr eq 'h') { @users = getHalfOps($2); } } $l = ""; # Clear the list. $modeToSet = $pre . str($chr,$_MODESPL); $modespl = $_MODESPL; $modeRaw = ""; foreach $n (@users) { if ($n ne $me) { $l = $l . " $n"; } if (getTotalTokens(tokenize($l)) == $modespl) { $modeRaw = $modeRaw . "MODE $2 $modeToSet $l" . chr(10); $l = ""; } } if ($l) { $modeToSet = $pre . str($chr, getTotalTokens(tokenize($l)) ); $modeRaw = $modeRaw . "MODE $2 $modeToSet $l"; } sendRaw("$modeRaw"); } } # str(char,repetitions); sub str { local('$r $x'); for ($x = 0; $x < $2; $x++) { $r = $r . $1; } return $r; } # numtok(string,character delimiter) sub numtok { return getTotalTokens(tokenize($1,$2)); } # EOF