Welcome
Multi-network capable auto-join manager with several options.
alias autojoin dialog -m autojoin autojoin
on *:START:{
.hmake aj.networks 100
.hmake aj.channels 100
.hmake aj.main 100
if ($findfile($scriptdir,ajnetworks.hsh,1,0)) { .hload aj.networks $ifmatch }
if ($findfile($scriptdir,ajchannels.hsh,1,0)) { .hload aj.channels $ifmatch }
if ($findfile($scriptdir,ajmain.hsh,1,0)) { .hload aj.main $ifmatch }
}
on *:EXIT:{
.hsave -o aj.networks $scriptdirajnetworks.hsh
.hsave -o aj.channels $scriptdirajchannels.hsh
.hsave -o aj.main $scriptdirajmain.hsh
}
on *:CONNECT:{
.enable #aj.perform
.timer 1 120 .disable #aj.perform
var %aj.chans $hget(aj.channels,0).item
while %aj.chans {
if ($hget(aj.main,$+($hget(aj.channels,%aj.chans).item,.,net)) == all) || ($remove($hget(aj.main,$+($hget(aj.channels,%aj.chans).item,.,net)),$chr(43)) == $scid($cid).network) {
var %aj.con = 1
while %aj.con <= $scon(0) {
if ($hget(aj.channels,%aj.chans).item isin $scon(%aj.con).chanlist) { goto multi }
inc %aj.con
goto join
}
:multi
if ($hget(aj.main,$+($hget(aj.channels,%aj.chans).item,.,multi)) !== on) { goto nojoin }
:join
join $hget(aj.channels,%aj.chans).item $iif($hget(aj.main,$+($hget(aj.channels,%aj.chans).item,.,key)),$hget(aj.main,$+($hget(aj.channels,%aj.chans).item,.,key)))
goto next
:nojoin
goto next
}
:next
dec %aj.chans
}
}
#aj.perform off
on *:JOIN:#:{ if ($nick == $me) && ($hget(aj.main,$+($chan,.,perform))) { scid $cid $hget(aj.main,$+($chan,.,perform)) } }
#aj.perform end
dialog autojoin {
title "IndeScript Auto-Join Manager v1.0"
size -1 -1 160 120
option dbu
text "L&ist:", 12, 2 1 48 8
combo 1, 2 10 53 92, size edit
box "Network", 2, 58 8 99 61
radio "A&ll", 3, 63 18 36 10
radio "&Only:", 4, 63 28 27 10
radio "E&xclude:", 11, 63 38 36 10
combo 5, 100 28 54 50, drop sort
check "Allow &Multiple Instances", 6, 63 56 70 10
text "&Key:", 7, 70 74 25 8
edit "", 8, 85 72 69 10, autovs pass
text "&Perform:", 9, 61 90 25 8
edit "", 10, 85 88 69 10, autovs
button "&Add", 13, 5 105 21 12
button "&Delete", 14, 31 105 21 12
button "Done", 15, 120 105 37 12, ok default
}
on *:DIALOG:autojoin:init:0:{
if ($hget(aj.networks,0).item < 1) { echo -a Creating Network List | net.up }
net.drop
chan.list
did -c autojoin 5 $didwm(autojoin,5,$network)
did -c autojoin 1 $didwm(autojoin,1,*)
chan.info
}
on *:DIALOG:autojoin:sclick:*:{
if ($did == 1) { chan.info }
if ($did == 3) { hadd -m aj.main $+($did(autojoin,1).seltext,.,net) all | chan.info }
if ($did == 4) { hadd -m aj.main $+($did(autojoin,1).seltext,.,net) $+(+,$did(autojoin,5).seltext) | chan.info }
if ($did == 11) { hadd -m aj.main $+($did(autojoin,1).seltext,.,net) $+(-,$did(autojoin,5).seltext) | chan.info }
if ($did == 6) { hadd -m aj.main $+($did(autojoin,1).seltext,.,multi) $iif($did(autojoin,6).state == 1,on,off) | chan.info }
if ($did == 13) { hadd -m aj.channels $did(autojoin,1) | chan.list }
if ($did == 14) { hdel aj.channels $did(autojoin,1) | hdel -w aj.main $+($did(autojoin,1),*) | chan.list }
if ($did == 5) { hadd -m aj.main $+($did(autojoin,1).seltext,.,net) $iif($did(autojoin,11).state == 1,$+(-,$did(autojoin,5).seltext),$iif($did(autojoin,4).state == 1,$+(+,$did(autojoin,5).seltext),All)) }
}
on *:DIALOG:autojoin:edit:*:{
if ($did == 8) { hadd -m aj.main $+($did(autojoin,1).seltext,.,key) $did(autojoin,8) }
if ($did == 10) { hadd -m aj.main $+($did(autojoin,1).seltext,.,perform) $did(autojoin,10) }
}
alias -l chanlist { var %x $chan(0) | while %x { var %y = $addtok(%y,$chan(%x),32) | dec %x } | return %y }
alias -l net.up { var %x = $server(0) | while %x { if ($server(%x).group !isnum) { hadd -m aj.networks $server(%x).group } | dec %x } }
alias -l net.drop { did -r autojoin 5 | var %x = $hmatch(aj.networks,*,0) | while %x { did -a autojoin 5 $hmatch(aj.networks,*,%x) | dec %x } }
alias -l chan.list { did -r autojoin 1 | var %x = $hmatch(aj.channels,*,0) | while %x { did -a autojoin 1 $hmatch(aj.channels,*,%x) | dec %x } }
alias -l chan.info {
did -u autojoin 3,4,11
did -r autojoin 8,10
if ($left($hget(aj.main,$+($did(autojoin,1).seltext,.,net)),1) == $chr(45)) { did -c autojoin 11 | did -c autojoin 5 $didwm(autojoin,5,$mid($hget(aj.main,$+($did(autojoin,1).seltext,.,net)),2)) }
elseif ($left($hget(aj.main,$+($did(autojoin,1).seltext,.,net)),1) == $chr(43)) { did -c autojoin 4 | did -c autojoin 5 $didwm(autojoin,5,$mid($hget(aj.main,$+($did(autojoin,1).seltext,.,net)),2)) }
else { did -c autojoin 3 | did -u autojoin 5 | hadd -m aj.main $+($did(autojoin,1).seltext,.,net) all }
if ($hget(aj.main,$+($did(autojoin,1).seltext,.,key))) { did -a autojoin 8 $hget(aj.main,$+($did(autojoin,1).seltext,.,key)) }
did $iif($hget(aj.main,$+($did(autojoin,1).seltext,.,multi)) == on,-c,-u) autojoin 6
if ($hget(aj.main,$+($did(autojoin,1).seltext,.,perform))) { did -a autojoin 10 $hget(aj.main,$+($did(autojoin,1).seltext,.,perform)) }
}