rendered paste body; ––––––––––––––––––––––––––––––––––––––––
; NoNameScript v4.1 - psyBNC control - coded by greeny & mute
; Don't edit anything in here unless you REALLY know what you're doing!
; ––––––––––––––––––––––––––––––––––––––––
alias psybnc {
if (%psybnc.info. [ $+ [ $cid ] ]) { noop $dialog(psybnc,psybnc,-4) }
else { errdialog you can only open the psyBNC control when the active connection is connected to a supported psyBNC! }
}
dialog psybnc {
title "psyBNC control [/psybnc]"
size -1 -1 397 328
option pixels
icon script\pics\nntray.ico
tab "General", 1, 4 6 388 292
box "General options", 32, 12 32 374 162, tab 1
text "Set virtual host to", 15, 40 52 90 16, tab 1
edit "", 16, 146 48 170 22, tab 1 autohs limit 100
button "&Set!", 3, 318 48 60 22, disable tab 1
text "Change auto-rejoin channels when going online:", 5, 40 76 238 14, tab 1
button "&Set...", 41, 318 72 60 22, tab 1
text "Change anti-idle:", 8, 40 100 86 14, tab 1
button "&Set...", 42, 318 96 60 22, tab 1
text "Change DCCs direct connections:", 11, 40 124 168 14, tab 1
button "Set...", 43, 318 120 60 22, tab 1
text "Change password", 52, 40 148 92 16, tab 1
button "Set...", 53, 318 144 60 22, tab 1
check "&Auto-play private logs when available", 7, 22 168 198 18, tab 1
check "&Open queries for log", 71, 228 168 155 18, tab 1
text "Set leave text to", 9, 40 218 86 16, tab 1
edit "", 21, 146 214 170 22, tab 1 autohs limit 100
button "&Set!", 20, 318 214 60 22, tab 1
text "Set away text to", 13, 40 240 86 16, tab 1
edit "", 23, 146 236 170 22, tab 1 autohs limit 100
button "&Set!", 22, 318 236 60 22, tab 1
text "Set offline nick to", 17, 40 262 86 16, tab 1
edit "", 25, 146 258 170 22, tab 1 autohs limit 30
button "&Set!", 24, 318 258 60 22, tab 1
box "Offline options", 31, 12 198 374 88, tab 1
tab "Connection", 2
box "Connection options", 40, 12 232 374 54, tab 2
box "Servers", 46, 12 32 374 196, tab 2
list 47, 20 48 280 172, disable tab 2 size vsbar
button "&Add", 44, 304 50 74 24, tab 2
button "&Remove", 48, 304 78 74 24, disable tab 2
button "Co&nnect to server", 50, 24 250 114 24, tab 2
button "&Quit connection", 49, 142 250 114 24, tab 2
button "R&econnect", 51, 260 250 114 24, tab 2
tab "Admin control", 12
box "Users on your bouncer (right-click for options)", 35, 12 32 374 254, tab 12
list 28, 20 47 358 230, disable tab 12 size
tab "Info", 39
box "psyBNC connection status", 33, 12 32 374 92, tab 39
text "Connection status", 29, 22 52 94 14, tab 39
edit "", 30, 176 48 202 22, tab 39 read autohs
edit "", 26, 176 70 202 22, tab 39 read autohs
edit "", 27, 176 92 202 22, tab 39 read autohs
text "Version", 18, 22 96 42 14, tab 39
text "Server", 14, 22 74 38 14, tab 39
box "Misc. info", 38, 12 130 374 70, tab 39
text "Users on the BNC", 34, 22 150 90 14, tab 39
text "Time connected", 37, 22 172 82 14, tab 39
edit "", 10, 176 146 202 22, tab 39 read autohs
edit "", 36, 176 168 202 22, tab 39 read autohs
link "Official psyBNC homepage", 45, 14 220 132 16, tab 39
button "C&ommand list", 6, 4 300 80 24
button "&Close", 4, 313 300 80 24, ok
}
dialog psybnc.addserver {
title "Add psyBNC server"
size -1 -1 256 148
option pixels
icon script\pics\nntray.ico
box "Add server to psyBNC", 1, 4 2 248 112
button "&Ok", 2, 88 120 80 24
button "&Cancel", 3, 172 120 80 24, cancel
edit "", 4, 84 18 160 22, autohs limit 80
edit "6667", 5, 84 40 160 22, autohs limit 5
edit "", 6, 84 62 160 22, pass autohs limit 50
text "Server", 7, 14 22 38 14
text "Port", 8, 14 44 26 14
text "Password", 9, 14 66 52 14
check "SSL connection", 10, 14 88 100 18
}
on *:dialog:psybnc.addserver:*:*:{
if ($devent == sclick) {
if ($did == 2) {
if (?*.??* !iswm $did(4)) { errdialog you did not enter a valid server address. }
else {
dialog -x $dname
.raw addserver $iif($did(10).state,S=) $+ $did(4) : $+ $iif($did(5) isnum 1-65535,$v1,6667) $did(6)
psybnc.getservers
}
}
}
elseif ($devent == edit) && ($did == 5) { numonlyedit $dname $did }
}
dialog psybnc.adduser {
title "Add psyBNC user"
size -1 -1 256 106
option pixels
icon script\pics\nntray.ico
box "Add user to psyBNC", 1, 4 2 248 70
button "&Ok", 2, 88 78 80 24
button "&Cancel", 3, 172 78 80 24, cancel
edit "", 4, 84 18 160 22, autohs limit 8
edit "", 5, 84 40 160 22, autohs limit 30
text "Login", 7, 14 22 32 14
text "Username", 8, 14 44 54 14
}
on *:dialog:psybnc.adduser:*:*:{
if ($devent == sclick) {
if ($did == 2) {
var %l = $remove($did(4),$chr(32)),%u = $remove($did(5),$chr(32))
if (!%l) || (!%u) { errdialog you did not enter a login and username. }
else {
dialog -x $dname
.raw adduser %l : $+ %u
psybnc.getusers
}
}
}
}
alias psybnc.adduser { noop $dialog(psybnc.adduser,psybnc.adduser,-4) }
alias psybnc.getservers {
did -rb psybnc 47
set -u100 %psybnc.getservers 1
.raw LISTSERVERS
}
alias psybnc.getusers {
did -rb psybnc 28
did -ra psybnc 10 unknown
set -u100 %psybnc.bwhoprog 1
.raw BWHO
}
alias psybnc.refcontime {
if ($dialog(psybnc)) { did -ra $v1 36 $uptime(server,1) }
else { .timerpsybnc.refcontime off }
}
alias psybnc.refinfo {
tokenize 32 %psybnc.info. [ $+ [ $cid ] ]
did -ra psybnc 30 connected
did -ra psybnc 26 $1
did -ra psybnc 27 $2
}
on *:dialog:psybnc:*:*:{
if ($devent == init) {
mdx SetControlMDX $dname 28 ListView report showsel single infotip rowselect > script\dlls\views.mdx
did -i $dname 28 1 headerdims 20:1 70:2 70:3 90:4 90:5 90:6
did -i $dname 28 1 headertext + 0 Status + 0 User + 0 Nickname + 0 Server + 0 Real name + 0 Last connect
did -i $dname 28 1 settxt bgcolor none
did -a $dname 26 $1
did -a $dname 27 $2
did -a $dname 30 Connected!
set %psybnc.cid $cid
if (%psybnc.autoplayprivlog) { did -c $dname 7 }
if (%psybnc.logqueries) { did -c $dname 71 }
psybnc.getusers
psybnc.getservers
psybnc.refcontime
psybnc.refinfo
.timerpsybnc.refcontime -io 0 1 psybnc.refcontime
}
elseif ($devent == sclick) {
if ($did == 47) { did $iif($did($did).sel,-e,-b) $dname 48 }
elseif ($did == 44) { noop $dialog(psybnc.addserver,psybnc.addserver,-4) }
elseif ($did == 48) {
.raw delserver $gettok($did(47).seltext,2,160)
did -b $dname 48
psybnc.getservers
}
elseif ($did == 50) { if ($ydialog(Do you really want to connect to the server?)) { .raw bconnect } }
elseif ($did == 49) { if ($ydialog(Do you really want to quit the connection to the server?)) { .raw bquit } }
elseif ($did == 51) { if ($ydialog(Do you really want to reconnect?)) { .raw jump } }
elseif ($did == 6) { cmdlist -b }
elseif ($did == 53) {
.raw password $+($ident,:,$$epdialog(Please enter a new password.))
idialog Password change requested.
}
elseif ($did == 20) {
.raw setleavemsg $did(21)
idialog Leave message $iif($did(21),set to $v1,unset) $+ !
}
elseif ($did == 22) {
.raw setaway $did(23)
idialog Away text $iif($did(23),set to $v1,unset) $+ !
}
elseif ($did == 24) {
.raw setawaynick $did(25)
idialog Offline nick $iif($did(25),set to $v1,unset) $+ !
}
elseif ($did == 7) { sdt psybnc.autoplayprivlog }
elseif ($did == 71) { sdt psybnc.logqueries }
elseif ($did == 41) {
popdll.new popup
popdll.add popup + 0 0 Enable $cr psybnc.setoption autorejoin 1
popdll.add popup + 0 0 Disable $cr psybnc.setoption autorejoin 0
popdll.disp popup
}
elseif ($did == 42) {
popdll.new popup
popdll.add popup + 0 0 Enable $cr psybnc.setoption aidle 1
popdll.add popup + 0 0 Disable $cr psybnc.setoption aidle 0
popdll.disp popup
}
elseif ($did == 43) {
popdll.new popup
popdll.add popup + 0 0 Enable $cr psybnc.setoption dccenable 1
popdll.add popup + 0 0 Disable $cr psybnc.setoption dccenable 0
popdll.disp popup
}
elseif ($did == 3) {
.raw bvhost $did(16)
idialog Vhost set to $did(16) $+ !
}
elseif ($did == 28) {
if (rclick * iswm $did($did,1)) {
popdll.new popup
popdll.new psyuser
popdll.new admin
var %a = $cell($did,1),%u = $cell($did,2),%n = $cell($did,3)
popdll.add popup +d 0 0 — $iif($did($did).sel,$shorten(15,%u),psyBNC users) —
popdll.add popup
popdll.add popup +> 0 0 &Admin status $cr admin
popdll.add admin + 0 0 &Give admin status $cr psybnc.adminoption madmin %u
popdll.add admin + 0 0 &Take admin status $cr psybnc.adminoption unadmin %u
popdll.add popup + 0 0 &Change password... $cr psybnc.changepass %u
popdll.add popup $iif($did($did).sel,+,+d) 0 0 &Whois $cr we %n
popdll.add popup
popdll.add popup +> 0 0 &User $cr psyuser
popdll.add psyuser + 0 0 &Add user... $cr psybnc.adduser
popdll.add psyuser $iif($did($did).sel,+,+d) 0 0 &Delete user $cr psybnc.adminoption deluser %u
popdll.add psyuser
popdll.add psyuser $iif($did($did).sel,+,+d) 0 0 &Kill user $cr psybnc.adminoption bkill %u
popdll.add popup
popdll.add popup + 0 0 &Refresh list $cr psybnc.getusers
popdll.disp popup
}
else {
sortmdx $dname $did
}
}
elseif ($did == 45) { url -n http://www.psybnc.info/ }
}
elseif ($devent == edit) {
if ($did == 16) { did $iif($did($did) != $null,-e,-b) $dname 3 }
}
elseif ($devent == close) { unset %psybnc.cid }
}
alias psybnc.changepass { .raw password $1 : $+ $$epdialog(Please enter a new password for the user $1 $+ .) }
alias psybnc.adminoption {
.raw $1-
psybnc.getusers
}
alias psybnc.setoption {
.raw $1-
idialog $replace($1,autorejoin,Auto-rejoin,aidle,Anti-idle,dccenable,Direct DCC sends) $iif($2,enabled!,disabled!)
}
on *:join:#:{
if (%psybnc.info. [ $+ [ $cid ] ]) && ((~ isin $chan) || (' isin $chan)) {
if (!%psybnc.mconwarn) {
set %psybnc.mconwarn 1
.timer 1 0 idialog Warning: you appear to be using a psyBNC connection to multiple networks, which is not supported by NoNameScript. This may result in unwanted side-effects. This message is only shown once.
}
}
}
on ^*:text:*:?:{
if ($psybnc.nick($nick) && (%psybnc.info. [ $+ [ $cid ] ])) {
psybnc.textevent $1-
if (??? ??? ?* ??:??:?? :Nutzer $ident *wurde getrennt* iswm $1-) || (??? ??? ?* ??:??:?? :User $ident *got disconnected* iswm $1-) {
.signal -n disconnect -b
echo -sti12c info * Bouncer disconnected from server
}
elseif (??? ??? ?* ??:??:?? :Nutzer $ident *verbunden zu * iswm $1-) || (??? ??? ?* ??:??:?? :User $ident *connected to * iswm $1-) { echo -sti12c info * Bouncer successfully connected you to the server! }
elseif (??? ??? ?* ??:??:?? :Nutzer $ident *versucht ?*.?* port ?*. iswm $1-) || (??? ??? ?* ??:??:?? :User $ident *trying ?*.?* port ?*. iswm $1-) { echo -sti12c info * Bouncer redirects you to $9 $+ / $+ $11 }
}
}
on ^*:open:?:{ if ($psybnc.nick($nick) && (%psybnc.info. [ $+ [ $cid ] ])) { psybnc.textevent $1- } }
alias psybnc.textevent {
if ($dialog(psybnc)) {
psybnc.addbwho $1-
if ($1- == Only admins may use that command.) || ($1- == Nur Admins duerfen diesen Befehl nutzen.) {
.timer 1 0 errdialog only admins may use that command.
haltdef
}
}
if (%psybnc.getservers) {
if ($dialog(psybnc)) && ($regex(gserv,$1-,/^Server #(\d+): (.+) port (\d+)$/i)) {
did -a psybnc 47 $+($regml(gserv,2),:,$regml(gserv,3),$str($chr(160),200),$regml(gserv,1))
haltdef
}
if ($1- == End of Servers.) || ($1- == Ende der Server.) {
if ($dialog(psybnc)) { did -e $v1 47 }
unset %psybnc.getservers
haltdef
}
}
psybnc.pvloghandler $1-
}
on ^*:notice:*:?:{
if ($psybnc.nick($nick) && (%psybnc.info. [ $+ [ $cid ] ])) {
if ($dialog(psybnc)) { psybnc.addbwho $1- }
psybnc.pvloghandler $1-
}
if ($istok(Welcome Wilkommen,$nick,32)) && (psyBNC* iswm $1) && (!%psybnc.info. [ $+ [ $cid ] ]) {
set -u100 %psybnc.modehide. $+ $cid 1
set %psybnc.info. $+ $cid $+($server,:,$port) $remove($mid($1,7),$chr(32))
mode $me
if (psyBNC2.3* !iswm $1) && (!%psybnc.warned) {
.timer 1 0 errdialog you are connected to $1 $+ , however, this script was intended for use with psyBNC2.3.* only. The psyBNC features are still usable, but may not all work as expected. This warning is only shown once.
set %psybnc.warned 1
}
}
}
raw 221:*:{
if (%psybnc.modehide. [ $+ [ $cid ] ]) {
unset %psybnc.modehide. $+ $cid
haltdef
}
}
alias psybnc.pvloghandler {
var %w = $psybnc.plogwin
if (($1- == You have Messages. Type /QUOTE PLAYPRIVATELOG to read your messages.) || (Du hast Nachrichten. *PLAYPRIVATELOG* zu lesen. iswm $1-)) && (%psybnc.autoplayprivlog) {
psybnc.getprivlog
haltdef
}
elseif ($1- == Starting playing Log) || ($1- == Starte Wiedergabe des Logs) {
if (!$window(%w)) { window -k0 %w }
else { clear %w }
thmecho %w Getting psyBNC private log... please wait.
echo %w
if (%psybnc.logqueries) { thmecho %w Outputting private logs to queries... }
set %psybnc.messages. $+ $cid 0
.timerpsybnc.privlog.timeout.countdown. $+ $cid off
.timerpsybnc.privlog.timeout. $+ $cid off
set %psybnc.getprivlog. $+ $cid 1
haltdef
}
elseif ($1- == Log geloescht) || ($1- == Log erased) {
thmecho -a psyBNC privatelog erased!
haltdef
}
elseif ($1- == You have no new Messages.) || ($1- == Du hast keine neuen Nachrichten.) {
thmecho -a no new messages in your private log!
haltdef
}
elseif (%psybnc.getprivlog. [ $+ [ $cid ] ]) && (%w) {
psybnc.addpvlog $1-
haltdef
}
}
alias psybnc.addpvlog {
var %w = $psybnc.plogwin
if ($1- == Use ERASEPRIVATELOG to kill the log) || ($1- == Verwende ERASEPRIVATELOG, um das Log zu loeschen) {
aline %w
var %x = %psybnc.messages. [ $+ [ $cid ] ]
thmecho %w Done retrieving $thmhl(%x) $iif(%x == 1,message.,messages.)
unset %psybnc.messages. $+ $cid
unset %psybnc.getprivlog. $+ $cid
}
;VOKS SAGT ICH SOLL DAS CODEN OHNE ZU TESTEN
elseif ($regex(pvlog,$1-,/^(?:[^ ]+[\~\'])?[a-z]{3} ([a-z]{3} \d\d?) (\d\d?:\d\d:\d\d) :\(([^ ]+)!([^ ]+@[^ ]+)\) (.+)$/i)) {
if (%psybnc.logqueries) {
if ($window($regml(pvlog,3),1).type != query) { query_log $regml(pvlog,3) psyBNC }
thmecho $regml(pvlog,3) $asctime($ctime($regml(pvlog,1) $asctime(yyyy) $regml(pvlog,2)),dd.mm.yyyy $+ $chr(44) HH:nn:ss) $+ : $+ $regml(pvlog,3) $+ $nbr($regml(pvlog,4)) $+ : $regml(pvlog,5)
}
else {
thmecho %w $asctime($ctime($regml(pvlog,1) $asctime(yyyy) $regml(pvlog,2)),dd.mm.yyyy $+ $chr(44) HH:nn:ss) $+ : $+ $regml(pvlog,3) $+ $nbr($regml(pvlog,4)) $+ : $regml(pvlog,5)
}
inc %psybnc.messages. $+ $cid
}
}
alias psybnc.addbwho {
if (%psybnc.bwhoprog) {
if ($regex(bwho,$1-,/^(.? )?(.+)\((.+)\)(.*) \[(.+)\] :(.+)$/i)) {
if ($regml(bwho,6)) { var %t = $regml(bwho,1),%i = $regml(bwho,2),%n = $regml(bwho,3),%h = $regml(bwho,4),%s = $regml(bwho,5),%r = $regml(bwho,6),%l }
else { var %t,%i = $regml(bwho,1),%n = $regml(bwho,2),%h = $regml(bwho,3),%s = $regml(bwho,4),%r = $regml(bwho,5),%l }
if ($regex(last,%r,^(.+) \[(?:zuletzt|last):(.*) \]$)) { var %r = $regml(last,1),%l = $regml(last,2) }
var %h = $mid(%h,2),%s = $gettok(t $+ %s,2-,58)
did -a psybnc 28 0 + 0 0 0 %t $+ + 0 0 0 %i $+ + 0 0 0 %n $+ + 0 0 0 $iif(%s,%s,unknown) $+ + 0 0 0 $strip(%r) $+ + 0 0 0 $iif(%l,%l,unknown)
.timerusbwho -o 1 2 psybnc.unsetbwho
did -ra psybnc 10 $calc($did(psybnc,28).lines -1)
haltdef
}
}
}
alias psybnc.unsetbwho {
unset %psybnc.bwhoprog
if ($dialog(psybnc)) { did -e $v1 28 }
}
alias psybnc.getprivlog {
if (%psybnc.info. [ $+ [ $cid ] ]) {
if (!%psybnc.logqueries) {
var %w = $psybnc.plogwin
if ($window(%w)) {
clear %w
window -a %w
}
else { window -k0 %w }
thmecho %w Getting psyBNC private log... please wait.
echo %w
}
.timerpsybnc.privlog.timeout. $+ $cid 1 4 psybnc.privlog.timeout
.raw playprivatelog
}
else { thmerror -a You're not connected to psyBNC! }
}
alias psybnc.privlog.timeout {
var %w = $psybnc.plogwin
unset %psybnc.getprivlog. $+ $cid
if ($window(%w)) && ($line(%w,0) == 2) { thmecho %w Timed out / no new messages. }
}
alias psybnc.plogwin { return $+(@BNCPrivLog[,$cid,]) }
menu @bncprivlog[*] {
$style(2) — $shorten(15,$active) —:return
-
Refresh:psybnc.getprivlog
$iif($line($active,0) < 4 || !%psybnc.info. [ $+ [ $cid ] ],$style(2)) Erase log {
if ($ydialog(Really delete the psyBNC log?)) {
.raw eraseprivatelog
close -@ $psybnc.plogwin
}
}
$iif($line($active,0) < 4,$style(2)) Save log... {
var %f = $mkfullfn($$sfile($+(C:\psyBNC_,$iif($me,$me $+ _),$asctime(dd-mm-yy),.log),Where do you want to save the log?,Save)),%x = 1,%i = $line($active,0)
if (!$isfile(%f)) || ($ydialog(The file %f already exists. Overwrite?)) {
.fopen -o log %f
while (%x <= %i) {
if ($strip($line($active,%x))) { .fwrite -n log $v1 }
else { .fwrite log $crlf }
inc %x
}
.fclose log
idialog Log saved to %f $+ .
}
}
-
Close:close -@ $active
}
alias psybnc.nick { if ($istok(-psyBNC -bouncer -bnc,$1-,32)) { return 1 } }
; ––––––––––––––––––––––––––––––––––––––––
; End of file
; ––––––––––––––––––––––––––––––––––––––––