Took my auto-op script and expanded on it. This is what I came up with. There are two lists. auto-op and no-voice. This means that if a nick isn't on either list, they will be voiced. It's pretty self-explanatory in terms of usage. right click on a nick for the menu (auto-mode). If you want to put it near the top, hit ALT+R, go to pop-ops, go to view>nick list, and add "Auto-mode" w/o the quotes where you want it.
Added !op and !voice, allowing people already in the channel to op/voice themselves without hopping.
also, nick modification with aliases is available. type /modehelp for more info.
have fun :)
on @*:JOIN:#: {
if %amode. [ $+ [ $chan ] $+ . $+ [ $network ] ] == 1 {
if $address($nick,2) isin %modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ] { mode $chan +o $nick | HALT }
if $address($nick,2) isin %novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ] { HALT }
mode $chan +v $nick
} }
on @*:TEXT:!OP:#: { if (%amode. [ $+ [ $chan ] $+ . $+ [ $network ] ] != $null) && ($address($nick,2) isin %modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ]) && ($nick !isop #) && (%amode. [ $+ [ $chan ] $+ . $+ [ $network ] ] == 1) { mode # +o $nick }
on @*:TEXT:!VOICE:#: { if (%amode. [ $+ [ $chan ] $+ . $+ [ $network ] ] != $null) && ($address($nick,2) !isin %novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ]) && ($nick !isavoice #) && (%amode. [ $+ [ $chan ] $+ . $+ [ $network ] ] == 1) { mode # +v $nick }
alias amode {
if $1 == $null {
if %amode. [ $+ [ $chan ] $+ . $+ [ $network ] ] != 1 { set %amode. [ $+ [ $chan ] $+ . $+ [ $network ] ] 1 | echo -a Auto-mode for $chan is ON }
else { unset %amode. [ $+ [ $chan ] $+ . $+ [ $network ] ] | echo Auto-mode for $chan is OFF }
}
elseif #* iswm $1 {
if %amode. [ $+ [ $$1 ] $+ . $+ [ $network ] ] != 1 { set %amode. [ $+ [ $$1 ] $+ . $+ [ $network ] ] 1 | echo -a Auto-mode for $$1 is ON }
else { unset %amode. [ $+ [ $chan ] $+ . $+ [ $network ] ] | echo Auto-mode for $chan is OFF
} } }
menu Nicklist {
Auto-mode
.no-voice {
if $address($$1,2) == $null { who # }
if %novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ] == $null { echo -a $$1 has been added to the no-voice list for # | set %novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ] $address($$1,2) }
elseif ($address($$1,2) isin %novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ]) { echo -a $$1 has already been added to the no-voice list for # | HALT }
else { echo -a $$1 has been added to the no-voice list for # | set %novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ] %novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ] $address($$1,2) }
}
.voice {
if $address($$1,2) == $null { who # }
if $address($$1,2) isin %novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ] { echo -a $$1 has been removed from the no-voice list for # | set %novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ] $remtok(%novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ],$address($$1,2),0,32)
if %novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ] == $null { unset %novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ] } }
else { echo -a $$1 wasn't in the no-voice list for # }
}
.-
.op {
if $address($$1,2) == $null { who # }
if %modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ] == $null { echo -a $$1 has been added to the auto-op list for # | set %modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ] $address($$1,2) }
elseif ($address($$1,2) isin %modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ]) { echo -a $$1 has already been added to the auto-op list for # | HALT }
else { echo -a $$1 has been added to the auto-op list for # | set %modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ] %modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ] $address($$1,2)
}
}
.no-op {
if $address($$1,2) == $null { who # }
if $address($$1,2) isin %modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ] { echo -a $$1 has been removed from the auto-op list for # | set %modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ] $remtok(%modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ],$address($$1,2),0,32)
if %modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ] == $null { unset %modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ] } }
else { echo -a $$1 wasn't in the auto-op list for # }
}
.-
.help { /modehelp }
}
alias modeset {
if $1 == $null { echo -a Type "/modehelp" for script usage information }
if $2 == $null { echo -a You must specify a nick to modify }
if $2 !ison $chan { echo -a $2 is not in this channel: $chan }
elseif $1 == voice {
if $address($$2,2) == $null { echo -a I can't seem to find $1 $+ 's address :\ | HALT }
if %novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ] == $null { echo -a $$2 has been added to the no-voice list for # | set %novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ] $address($$2,2) }
elseif ($address($$2,2) isin %novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ]) { echo -a $$2 has been removed from the no-voice list for # | set %novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ] $remtok(%novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ],$address($$2),0,32) }
else { echo -a $$2 has been added to the no-voice list for # | set %novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ] %novoice. [ $+ [ $chan ] $+ . $+ [ $network ] ] $address($$2,2) }
}
elseif $1 == op {
if $address($$2,2) == $null { echo -a I can't seem to find $1 $+ 's address :\ | HALT }
if %modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ] == $null { echo -a $$2 has been added to the auto-op list for # | set %modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ] $address($$2,2) }
elseif ($address($$2,2) isin %modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ]) { echo -a $$2 has been removed from the auto-op list for # | set %modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ] $remtok(%modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ],$address($$2,2),0,32) }
else { echo -a $$2 has been added to the auto-op list for # | set %modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ] %modeop. [ $+ [ $chan ] $+ . $+ [ $network ] ] $address($$2,2) }
} }
alias modehelp {
echo -a :: Auto-Mode script written by Savage
echo -a :: all nick references use an address for the user
echo -a :: The easiest way to use this script is to right click on the nick
echo -a :: There are very few aliases for this script and they are as follows:
echo -a :: /amode - change whether the script is active for the active window
echo -a :: /amode #channel - change whether the script is active for specified channel
echo -a :: /modeset op NICK - add/remove nick to the op list for active window
echo -a :: /modeset voice NICK - add/remove nick to the no-voice list for active window
}