## ## ~/.irc/openpkg -- ircII run-commands for OpenPKG Foundation settings ## Copyright (c) 2005 Ralf S. Engelschall ## # Banner ^set display off echo *** Loading ircII configuration: openpkg (OpenPKG Foundation) # 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 { if ([$0] == []) { if (#alias.voice.nick == 0) { echo *** voice: (none) }{ @ tmp = [$alias.voice.nick] while (#tmp > 0) { @ nick = pop(tmp); echo *** voice: granted to $nick } ^assign -tmp ^assign -nick } }{ ^assign op + ^assign nick $0 if (left(1 $nick) == [-] || left(1 $nick) == [+]) { ^assign op $left(1 $nick) ^assign nick $strip([+-] $nick) } if ([$op] == [+]) { echo *** voice: granting to $nick mode $C +v $nick @ alias.voice.nick = pluck(alias.voice.nick $nick) @ alias.voice.nick = [$alias.voice.nick $nick] }{ if ([$nick] = [all]) { @ tmp = [$alias.voice.nick] while (#tmp > 0) { @ nick = pop(tmp); echo *** voice: taking from $nick mode $C -v $nick } ^assign -tmp ^assign -nick @ alias.voice.nick = [] }{ echo *** voice: taking from $nick mode $C -v $nick @ alias.voice.nick = pluck(alias.voice.nick $nick) } } } } # 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. list join } # End of Configuration ^set display on