## ## ~/.irc/openpkg -- ircII run-commands for OpenPKG settings ## Copyright (c) 2005-2018 Ralf S. Engelschall ## # Banner ^set display off echo *** Loading ircII configuration: openpkg (OpenPKG) # Convenience Ratbox Services Login # Usage: /login [[[] ] ] alias login { # determine command line arguments if ([$2] != [] && [$3] == []) { ^assign login.nickname $0 ^assign login.username $1 ^assign login.password $2 } if ([$1] != [] && [$2] == []) { ^assign login.username $0 ^assign login.password $1 } if ([$0] != [] && [$1] == []) { ^assign login.password $0 } # optionally determine nickname if ([$login.nickname] == []) { ^assign login.nickname $IRC_LOGIN_NICKNAME if ([$login.nickname] == []) { ^assign login.nickname $IRCNICK if ([$login.nickname] == []) { ^assign login.nickname $N } } } if ([$login.nickname] == []) { echo *** login:ERROR: IRC authentication nickname not known echo *** login:ERROR: (set shell $IRC_LOGIN_NICKNAME, shell $IRCNICK, ircII $login.nickname or use /nick) } # optionally determine username if ([$login.username] == []) { ^assign login.username $IRC_LOGIN_USERNAME if ([$login.username] == []) { ^assign login.username $IRCUSER if ([$login.username] == []) { ^assign login.username $login.nickname } } } if ([$login.username] == []) { echo *** login:ERROR: IRC authentication username not known echo *** login:ERROR: (set shell $IRC_LOGIN_USERNAME, shell $IRCUSER, or ircII $login.username) } # optionally determine password if ([$login.password] == []) { ^assign login.password $IRC_LOGIN_PASSWORD if ([$login.password] == []) { ^assign login.password $IRCPASS } } if ([$login.password] == []) { echo *** login:ERROR: IRC authentication password not known echo *** login:ERROR: (set shell $IRC_LOGIN_PASSWORD, shell $IRCPASS, or ircII $login.password) } if ([$login.nickname] == [] || [$login.username] == [] || [$login.password] == []) { echo *** login:ERROR: Unable to authenticate you because of missing information. __login_cleanup }{ __login_step1 } } alias __login_step1 { # communicating to UserServ if ([$login.nickname] == [$login.username]) { echo *** login: authenticating to UserServ with username ${login.username} } ^msg USERSERV login $login.username $login.password if ([$N] != [$login.nickname]) { timer 2 __login_step2 }{ __login_cleanup } } alias __login_step2 { # communicating to NickServ echo *** login: requesting to NickServ the regaining of nickname ${login.nickname} ^msg NICKSERV regain $login.nickname timer 2 __login_step3 } alias __login_step3 { # communicating to IRC echo *** login: resurrecting nickname ${login.nickname} nick $login.nickname timer 2 nick __login_cleanup } alias __login_cleanup { ^assign -login.nickname ^assign -login.username ^assign -login.password } # Flexible Channel Joining # Usage: /join [] alias join { ^assign alias.join.channel $0 ^on -473 "*Cannot join channel*+i*" { msg CHANSERV invite $alias.join.channel timer 2 __join_repeat } //join $alias.join.channel timer 4 __join_cleanup } alias __join_repeat { ^on -473 -"*Cannot join channel*+i*" //^join $alias.join.channel } alias __join_cleanup { ^assign -alias.join.channel ^on -473 -"*Cannot join channel*+i*" } # Convenience Operator Privilege Regaining # Usage: /opme alias opme { msg CHANSERV op $C } # Convenience Voice Management # (for moderated channels) # Usage: /voice [[+]|- ...] alias __voice_display { # display the nicks which have voice @ output = [] @ nicks = chanusers($C) @ i = 0 while (i < [$#nicks]) { @ nick = [$word($i $nicks)] @ type = hasvoice($nick $C) if ([$type] == [1]) { if ([$output] == []) { ^assign output ${nick} }{ ^assign output $output, ${nick} } } @ i = i + 1 ^assign -nick } if ([$output] == []) { echo +++ Voices: -none- }{ echo +++ Voices: $output } ^assign -i ^assign -nicks ^assign -output } alias __voice_change { # grant/take voice from nick(s) @ args = [$*] ^assign op + @ i = 0 while (i < [$#args]) { @ arg = [$word($i $args)] if (left(1 $arg) == [-] || left(1 $arg) == [+]) { ^assign op $left(1 $arg) ^assign arg $strip([+-] $arg) } if ([$arg] == [*]) { @ nicks = chanusers($C) }{ @ nicks = [$arg] } @ j = 0 while (j < [$#nicks]) { @ nick = [$word($j $nicks)] @ type = hasvoice($nick $C) if ([$op] == [+]) { if ([$type] == [0]) { echo +++ Voice granted to ${nick} mode $C +v $nick } }{ if ([$type] == [1]) { echo +++ Voice taken from ${nick} mode $C -v $nick } } @ j = j + 1 } @ i = i + 1 } ^assign -i ^assign -j ^assign -op ^assign -type ^assign -nick ^assign -nicks ^assign -arg ^assign -args } alias voice { if ([$C] == [0]) { echo +++ voice:ERROR: you are still not on a channel! }{ if ([$*] != []) { __voice_change $* timer 2 __voice_display }{ __voice_display } } } # Convenience All-In-One Session Setup alias session { clear echo ::: session: preparing main window window name main echo ::: session: logging in login echo ::: session: spawning other windows timer 2 __session_step2 timer 8 __session_step3 timer 14 __session_step4 } alias __session_step2 { window new name foundation window refnum foundation clear echo ::: session: preparing foundation window timer 1 join \#foundation } alias __session_step3 { window new name community window refnum community clear echo ::: session: preparing community window timer 1 join \#community } alias __session_step4 { window refnum main window balance echo ::: session: established. ^msg STEWARD who } # Shorthands for Services Communication alias gl msg global $0- alias al msg alis $0- alias ns msg nickserv $0- alias us msg userserv $0- alias cs msg chanserv $0- alias os msg operserv $0- alias ob msg operbot $0- alias js msg jupeserv $0- # Shorthands for Bot Communication alias se msg secretary $0- alias st msg steward $0- alias vo msg voter $0- # Additional Shorthands alias last msg secretary log $C last $* alias match msg secretary log $C match $* # End of Configuration ^set display on