Welcome

User: Pass:   register


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)) }
}






© 1996-2010 hdesk.org and dalnethelpdesk.com