aIRC — File Browser

aIRCv0.8.69 / aIRCv0.8.69 / script / chansetup.mrc

chansetup.mrc — 22.86 KB — Download this file

;/**********************************************************************
; *
; * aIRC
; * Channel Setup
; *
; **********************************************************************/
;
alias _chansetup {
  _dialog -m chansetup chansetup
  if ($_ischan($1)) { _chansetup.refresh $1 1 1 }
  elseif ($_ischan($active)) { _chansetup.refresh $active 0 1 }
  else { _chansetup.refresh $null 0 1 }
}
dialog chansetup {
  size -1 -1 263 202
  option dbu
  title "Channel Setup"

  tab "Toggles",2990,85 2 173 177
  tab "Options",2991
  tab "Lists",2992

  text "Settings:",1,10 10 30 10
  list 2,10 20 65 135,size
  button "Add",3,10 160 30 15
  button "Remove",4,45 160 30 15
  box "",5,5 2 75 178

  box "",51,90 15 165 160,tab 2990

  ; enforcebans bitch stopnethack revengebot secret shared

  ; clearbans dynamicbans userbans autoop greet protectops protectfriends
  check "Global",61,95 20 25 10,tab 2990
  check "Clear bans on join (+clearbans)",62,125 20 127 10,tab 2990
  check "Global",63,95 30 25 10,tab 2990
  check "Only activate bans when needed (+dynamicbans)",64,125 30 127 10,tab 2990
  check "Global",65,95 40 25 10,tab 2990
  check "Allow bans to be made by users directly? (+userbans)",66,125 40 127 10,tab 2990
  check "Global",67,95 50 25 10,tab 2990
  check "Autoop +o users (+autoop)",68,125 50 127 10,tab 2990
  check "Global",69,95 60 25 10,tab 2990
  check "Say infoline on join (+greet)",70,125 60 127 10,tab 2990
  check "Global",71,95 70 25 10,tab 2990
  check "Reop a deopped +o user (+protectops)",72,125 70 127 10,tab 2990
  check "Global",73,95 80 25 10,tab 2990
  check "Reop a deopped +f user (+protectfriends)",74,125 80 127 10,tab 2990

  ; dontkickops wasoptest seen statuslog cycle revenge autovoice
  check "Global",75,95 90 25 10,tab 2990
  check "Don't kick +o flag people (+dontkickops)",76,125 90 127 10,tab 2990
  check "Global",77,95 100 25 10,tab 2990
  check "Wasop test (+wasoptest)",78,125 100 100 10,tab 2990

  check "Global",79,95 -110 25 10,tab 2990 hide disable
  check "Respond to seen requests (+seen)",80,125 -110 127 10,tab 2990 disable

  check "Global",81,95 110 25 10,tab 2990 disable
  check "Log channel status every 5 minutes (+statuslog)",82,125 110 127 10,tab 2990
  check "Global",83,95 120 25 10,tab 2990
  check "Cycle channel when it becomes op-less (+cycle)",84,125 120 127 10,tab 2990
  check "Global",85,95 130 25 10,tab 2990
  check "Revenge valid users (+revenge)",86,125 130 127 10,tab 2990
  check "Global",87,95 140 25 10,tab 2990
  check "Autovoice +v users (+autovoice)",88,125 140 127 10,tab 2990

  ; freevoice
  check "Global",89,95 150 25 10,tab 2990
  check "Voice all users (+freevoice)",90,125 150 127 10,tab 2990

  box "Msgs",200,90 20 165 53,tab 2991
  check "Global",201,95 30 25 10,tab 2991
  check "Saludo",202,125 30 50 10,tab 2991
  radio "/msg",203,175 30 25 10,group tab 2991
  radio "/notice",204,200 30 30 10,tab 2991
  edit "",205,125 40 127 10,autohs tab 2991
  check "Global",211,95 50 25 10,tab 2991
  check "On part message",212,125 50 50 10,tab 2991
  radio "/msg",213,175 50 25 10,group tab 2991
  radio "/notice",214,200 50 30 10,tab 2991
  edit "",215,125 60 127 10,autohs tab 2991

  box "Enforces",250,90 69 165 53,tab 2991
  check "Global",251,95 79 25 10,tab 2991
  check "Enforce modes",252,125 79 50 10,tab 2991
  edit "",253,125 89 127 10,autohs tab 2991
  check "Global",254,95 99 25 10,tab 2991
  check "Enforce topic",255,125 99 50 10,tab 2991
  edit "",256,125 109 127 10,autohs tab 2991

  box "",150,90 118 165 60,tab 2991
  check "Global",154,95 128 25 10,tab 2991
  check "Warn when ppl says your name",155,125 129 100 8,tab 2991
  check "Global",1401,95 139 25 10,tab 2991
  check "Auto Limiter +",1402,125 140 41 8,tab 2991
  edit "",1403,167 139 15 10,tab 2991
  text "users every",1404,183 140 30 8,tab 2991
  edit "",1405,213 139 15 10,tab 2991
  text "seconds",1406,230 140 20 8,tab 2991

  box "Internal Address List",1001,90 20 165 50,tab 2992
  check "Global",1002,95 31 25 10,tab 2992
  text "Update IAL",1003,125 32 35 8,tab 2992
  combo 1004,165 30 60 100,drop tab 2992
  check "Ask if users are more than",1005,125 43 95 10,tab 2992
  edit "",1006,220 42 20 10,tab 2992
  check "Don't update if users are more than",1007,125 55 95 10,tab 2992
  edit "",1008,220 54 20 10,tab 2992

  box "Internal Ban List",1101,90 70 165 30,tab 2992
  check "Global",1102,95 81 25 10,tab 2992
  text "Update Banlist",1103,125 82 35 8,tab 2992
  combo 1104,165 80 60 100,drop tab 2992

  box "These hosts won't be counted as clones:",1201,90 100 165 30,tab 2992
  check "Global",1202,95 111 25 10,tab 2992
  text "Hosts:",1203,125 112 20 8,tab 2992
  edit "",1204,150 110 100 10,autohs tab 2992

  box "",1301,90 128 165 35,tab 2992
  check "Global",151,95 136 25 10,tab 2992
  text "Clone Scan",152,125 138 30 8,tab 2992
  combo 153,165 136 60 100,drop tab 2992

  check "Global",156,95 148 25 10,tab 2992
  text "Names on Join",157,125 150 40 8,tab 2992
  combo 158,165 148 60 100,drop tab 2992

  list 461,999 999 999 999,hide
  list 462,999 999 999 999,hide
  list 463,999 999 999 999,hide
  list 464,999 999 999 999,hide
  list 465,999 999 999 999,hide
  list 466,999 999 999 999,hide
  list 467,999 999 999 999,hide
  list 468,999 999 999 999,hide
  list 469,999 999 999 999,hide
  list 470,999 999 999 999,hide
  list 471,999 999 999 999,hide
  list 472,999 999 999 999,hide

  button "Ok",490,155 185 30 15,ok
  button "Cancel",491,190 185 30 15,cancel
  button "Help",492,225 185 30 15
}
;;
;
; /_chansetup.refresh <#channel|$null> <add channel> <load channels>
;
alias -l _chansetup.refresh {
  var %d = chansetup,%cs = $_schans,%i = 1,%n = $numtok(%cs,32),%c,%t,%ppp = 1
  if ($dialog(%d) == $null) { return }
  if ($3) {
    did -r %d 2
    did -ac %d 2 --Global--
    __chansetup.refresh.readfile 1
    while (%i <= %n) {
      %c = $gettok(%cs,%i,32)
      did $iif(%c == $1,-ac,-a) %d 2 %c
      __chansetup.refresh.readfile $did(%d,2).lines %c
      inc %i
    }
  }
  if ($_ischan($1)) && ($2) {
    var %i = 2,%n = $did(%d,2).lines
    while (%i <= %n) {
      if ($did(%d,2,%i) == $1) {
        %ppp = 0
        break
      }
      inc %i
    }
    if (%ppp) {
      did -ac %d 2 $1
      did -o %d 461 $did(%d,2).sel $replace($right($str(_$null,$numtok($did(%d,461,1),32)),-1),_,$chr(32))
      did -o %d 462,463,464,465,466,467,472 $did(%d,2).sel $null
    }
  }
  var %sel = $did(%d,2).sel,%chan = $iif(%sel > 1,$did(%d,2,%sel))
  did $iif(%sel == 1,-hu,-vu) %d 61,63,65,67,69,71,73,75,77,79,81,83,85,87,89,151,154,156,201,211,251,254,1002,1102,1202,1401

  var %i = 1,%ts = $did(%d,461,%sel),%n = $numtok(%ts,32)
  while (%i <= 15) {
    if (%i == 10) { did -bu %d 79,80 }
    elseif (%sel > 1) && ($gettok(%ts,%i,32) != $null) {
      did $iif($ifmatch,-c,-u) %d $calc(60 + %i * 2)
      did -u %d $calc(59 + %i * 2)
    }
    else {
      if (%sel > 1) {
        did $iif($gettok($did(%d,461,1),%i,32),-c,-u) %d $calc(60 + %i * 2)
        did -cv %d $calc(59 + %i * 2)
      }
      else {
        did $iif($gettok($did(%d,461,1),%i,32),-c,-u) %d $calc(60 + %i * 2)
        did -uh %d $calc(59 + %i * 2)
      }
    }
    inc %i
  }
  if ($did(%d,462,%sel) isnum 1-3) {
    did -c %d 153 $ifmatch
    did -u %d 151
  }
  elseif (%sel > 1) { did -c %d 151 }
  else { did -c %d 153 1 }
  if ($did(%d,463,%sel) != $null) {
    did $iif($ifmatch,-c,-u) %d 155
    did -u %d 154
  }
  elseif (%sel > 1) { did -c %d 154 }
  else {  }
  if ($did(%d,464,%sel) != $null) { %t = $ifmatch }
  else {
    if (%sel > 1) { did -c %d 201 }
    %t = $did(%d,464,1)
  }
  did $iif($gettok(%t,1,32),-c,-u) %d 202
  did $iif($gettok(%t,2,32),-c,-u) %d 203
  did $iif($gettok(%t,2,32),-u,-c) %d 204
  did -o %d 205 1 $gettok(%t,3-,32)
  if ($did(%d,465,%sel) != $null) { %t = $ifmatch }
  else {
    if (%sel > 1) { did -c %d 211 }
    %t = $did(%d,465,1)
  }
  did $iif($gettok(%t,1,32),-c,-u) %d 212
  did $iif($gettok(%t,2,32),-c,-u) %d 213
  did $iif($gettok(%t,2,32),-u,-c) %d 214
  did -o %d 215 1 $gettok(%t,3-,32)
  if ($did(%d,466,%sel) != $null) { %t = $ifmatch }
  else {
    if (%sel > 1) { did -c %d 251 }
    %t = $did(%d,466,1)
  }
  did $iif($gettok(%t,1,32),-c,-u) %d 252
  did -o %d 253 1 $gettok(%t,2-,32)
  if ($did(%d,467,%sel) != $null) { %t = $ifmatch }
  else {
    if (%sel > 1) { did -c %d 254 }
    %t = $did(%d,467,1)
  }
  did $iif($gettok(%t,1,32),-c,-u) %d 255
  did -o %d 256 1 $gettok(%t,2-,32)
  if ($did(%d,468,%sel) != $null) { %t = $ifmatch }
  else {
    if (%sel > 1) { did -c %d 1002 }
    %t = $did(%d,468,1)
  }
  tokenize 32 %t
  did -c %d 1004 $iif($1 isnum 1-3,$1,2)
  did $iif($2,-c,-u) %d 1005
  did -o %d 1006 1 $iif($_isint($3),$3,150)
  did $iif($4,-c,-u) %d 1007
  did -o %d 1008 1 $iif($_isint($5),$5,200)
  if ($did(%d,469,%sel) isnum 1-3) {
    did -c %d 1104 $ifmatch
    did -u %d 1102
  }
  elseif (%sel > 1) { did -c %d 1102 }
  else { did -c %d 1103 1 }

  var %t = $did(%d,470,%sel)
  if (>* iswm %t) {
    if ($gettok(%t,2-,32) != $null) { did -o %d 1204 1 $ifmatch }
    else { did -r %d 1204 }
  }
  elseif (%sel > 1) { did -c %d 1202 }
  else { did -r %d 1204 }

  if ($did(%d,471,%sel) != $null) { %t = $ifmatch }
  else {
    if (%sel > 1) { did -c %d 1401 }
    %t = $did(%d,471,1)
  }
  tokenize 32 %t
  did $iif($1,-c,-u) %d 1402
  did -o %d 1405 1 $iif($_isint($2),$2,60)
  did -o %d 1403 1 $iif($_isint($3),$3,3)

  if ($did(%d,472,%sel) isnum 1-3) {
    did -c %d 158 $ifmatch
    did -u %d 156
  }
  elseif (%sel > 1) { did -c %d 156 }
  else { did -c %d 158 1 }

  __chansetup.refresh
}
alias -l __chansetup.refresh {
  var %d = chansetup,%i = 59,%sel,%t
  if ($dialog(%d) == $null) { return }
  %sel = $did(%d,2).sel
  if (%sel > 1) {
    %i = 61
    while (%i <= 90) {
      if (%i == 79) { did -bu %d 79,80 }
      elseif ($did(%d,%i).state) { did $iif($gettok($did(%d,461,1),$calc((%i - 59) / 2),32),-cb,-ub) %d $calc(%i + 1) }
      else { did -e %d $calc(%i + 1) }
      inc %i 2
    }

    if ($did(%d,151).state) { did -bc %d 153 $iif($did(%d,462,1) isnum 1-3,$did(%d,462,1),1) }
    else { did -e %d 153 }
    if ($did(%d,154).state) { did $iif($did(%d,463,1),-cb,-ub) %d 155 }
    else { did -e %d 155) }
    if ($did(%d,156).state) { did -bc %d 158 $iif($did(%d,472,1) isnum 1-3,$did(%d,472,1),1) }
    else { did -e %d 158 }

    if ($did(%d,201).state) {
      %t = $did(%d,464,1)
      did $iif($gettok(%t,1,32),-cb,-ub) %d 202
      did $iif($gettok(%t,2,32),-cb,-ub) %d 203
      did $iif($gettok(%t,2,32),-ub,-cb) %d 204
      did -ob %d 205 1 $gettok(%t,3-,32)
    }
    else {
      did -e %d 202
      did $iif($did(%d,202).state,-e,-b) %d 203,204,205
    }
    if ($did(%d,211).state) {
      %t = $did(%d,465,1)
      did $iif($gettok(%t,1,32),-cb,-ub) %d 212
      did $iif($gettok(%t,2,32),-cb,-ub) %d 213
      did $iif($gettok(%t,2,32),-ub,-cb) %d 214
      did -ob %d 215 1 $gettok(%t,3-,32)
    }
    else {
      did -e %d 212
      did $iif($did(%d,212).state,-e,-b) %d 213,214,215
    }
    if ($did(%d,251).state) {
      %t = $did(%d,466,1)
      did $iif($gettok(%t,1,32),-cb,-ub) %d 252
      did -ob %d 253 1 $gettok(%t,2-,32)
    }
    else {
      did -e %d 252
      did $iif($did(%d,252).state,-e,-b) %d 253
    }
    if ($did(%d,254).state) {
      %t = $did(%d,467,1)
      did $iif($gettok(%t,1,32),-cb,-ub) %d 255
      did -ob %d 256 1 $gettok(%t,2-,32)
    }
    else {
      did -e %d 255
      did $iif($did(%d,255).state,-e,-b) %d 256
    }
    if ($did(%d,1002).state) {
      %t = $did(%d,468,1)
      var %zzz = $gettok(%t,1,32)
      did -bc %d 1004 $iif(%zzz isnum 1-3,%zzz,2)
      did $iif($gettok(%t,2,32),-cb,-ub) %d 1005
      did -ob %d 1006 1 $gettok(%t,3,32)
      did $iif($gettok(%t,4,32),-cb,-ub) %d 1007
      did -ob %d 1008 1 $gettok(%t,5,32)
    }
    else {
      did -e %d 1003,1004,1005,1007
      did $iif($did(%d,1005).state,-e,-b) %d 1006
      did $iif($did(%d,1007).state,-e,-b) %d 1008
    }
    if ($did(%d,1102).state) { did -bc %d 1104 $iif($did(%d,469,1) isnum 1-3,$did(%d,469,1),2) }
    else { did -e %d 1104 }
    if ($did(%d,1202).state) { did -ob %d 1204 1 $gettok($did(%d,470,1),2-,32) }
    else { did -e %d 1204 }
    if ($did(%d,1401).state) {
      %t = $did(%d,471,1)
      did $iif($gettok(%t,1,32),-bc,-bu) %d 1402
      did -ob %d 1405 1 $gettok(%t,2,32)
      did -ob %d 1403 1 $gettok(%t,3,32)
      did -b %d 1404,1406
    }
    else {
      did -e %d 1402
      did $iif($did(%d,1402).state,-e,-b) %d 1403,1404,1405,1406
    }
  }
  else {
    did -e %d 62,64,66,68,70,72,74,76,78,82,84,86,88,90,153,155,158,202,212,252,255,1003,1004,1005,1006,1007,1008,1103,1104,1204,1402
    did -b %d 80
    did $iif($did(%d,202).state,-e,-b) %d 203,204,205
    did $iif($did(%d,212).state,-e,-b) %d 213,214,215
    did $iif($did(%d,252).state,-e,-b) %d 253
    did $iif($did(%d,255).state,-e,-b) %d 256
    did $iif($did(%d,1005).state,-e,-b) %d 1006
    did $iif($did(%d,1007).state,-e,-b) %d 1008
    did $iif($did(%d,1402).state,-e,-b) %d 1403,1404,1405,1406
  }
}
alias -l _chansetup.savebuf {
  var %d = chansetup,%l,%i,%t,%r
  if ($dialog(%d) == $null) { return }
  %l = $did(%d,2).sel
  if (%l == $null) { return }
  if ($1 == *) || ($1 isnum 61-90) { did -o %d 461 %l $iif($did(%d,61).state,$null,$did(%d,62).state) $iif($did(%d,63).state,$null,$did(%d,64).state) $iif($did(%d,65).state,$null,$did(%d,66).state) $iif($did(%d,67).state,$null,$did(%d,68).state) $iif($did(%d,69).state,$null,$did(%d,70).state) $iif($did(%d,71).state,$null,$did(%d,72).state) $iif($did(%d,73).state,$null,$did(%d,74).state) $iif($did(%d,75).state,$null,$did(%d,76).state) $iif($did(%d,77).state,$null,$did(%d,78).state) $iif($did(%d,79).state,$null,$did(%d,80).state) $iif($did(%d,81).state,$null,$did(%d,82).state) $iif($did(%d,83).state,$null,$did(%d,84).state) $iif($did(%d,85).state,$null,$did(%d,86).state) $iif($did(%d,87).state,$null,$did(%d,88).state) $iif($did(%d,89).state,$null,$did(%d,90).state) }
  if ($1 == *) || ($1 isnum 151-153) { did -o %d 462 %l $iif($did(%d,151).state,$null,$did(%d,153).sel) }
  if ($1 == *) || ($1 isnum 156-158) { did -o %d 472 %l $iif($did(%d,156).state,$null,$did(%d,158).sel) }
  if ($1 == *) || ($1 isnum 154-155) { did -o %d 463 %l $iif($did(%d,154).state,$null,$did(%d,155).state) }
  if ($1 == *) || ($1 isnum 201-205) {
    if ($did(%d,201).state) { did -o %d 464 %l $null }
    else { did -o %d 464 %l $did(%d,202).state $iif($did(%d,203).state,1,0) $did(%d,205) }
  }
  if ($1 == *) || ($1 isnum 211-215) {
    if ($did(%d,211).state) { did -o %d 465 %l $null }
    else { did -o %d 465 %l $did(%d,212).state $iif($did(%d,213).state,1,0) $did(%d,215) }
  }
  if ($1 == *) || ($1 isnum 251-253) {
    if ($did(%d,251).state) { did -o %d 466 %l $null }
    else { did -o %d 466 %l $did(%d,252).state $did(%d,253) }
  }
  if ($1 == *) || ($1 isnum 254-256) {
    if ($did(%d,254).state) { did -o %d 467 %l $null }
    else { did -o %d 467 %l $did(%d,255).state $did(%d,256) }
  }
  if ($1 == *) || ($1 isnum 1002-1008) {
    if ($did(%d,1002).state) { did -o %d 468 %l $null }
    else { did -o %d 468 %l $did(%d,1004).sel $did(%d,1005).state $iif($_isint($did(%d,1006).text),$did(%d,1006).text,150) $did(%d,1007).state $iif($_isint($did(%d,1008).text),$did(%d,1008).text,200) }
  }
  if ($1 == *) || ($1 isnum 1102-1104) { did -o %d 469 %l $iif($did(%d,1102).state,$null,$did(%d,1104).sel) }
  if ($1 == *) || ($1 isnum 1202-1204) { did -o %d 470 %l $iif($did(%d,1202).state,$null,> [ $did(%d,1204) ] ) }
  if ($1 == *) || ($1 isnum 1401-1406) {
    if ($did(%d,1401).state) { did -o %d 471 %l $null }
    else { did -o %d 471 %l $did(%d,1402).state $iif($_isint($did(%d,1405).text),$did(%d,1405).text,60) $iif($_isint($did(%d,1403).text),$did(%d,1403).text,3) }
  }
}
alias -l __chansetup.refresh.readfile {
  var %d = chansetup,%read,%ts = clearbans dynamicbans userbans autoop greet protectops protectfriends dontkickops wasoptest seen statuslog cycle revenge autovoice freevoice,%i = 1,%n = $numtok(%ts,32),%t,%r,%t1,%t2,%ZXZ
  if ($2) { var %file = $_chaninifile,%topic = $2 }
  else { var %file = $_chaninifile,%topic = default }
  while (%i <= %n) {
    var %t = $_readini(%file,%topic,$gettok(%ts,%i,32)),%r = %r $iif(%t,%t,_$null)
    inc %i
  }
  %r = $replace(%r,_$null,$null)
  did -o %d 461 $1 %r

  if ($_readini(%file,%topic,_scanclones) isnum 0-2) { did -o %d 462 $1 $calc($ifmatch + 1) }
  else { did -o %d 462 $1 $null }
  if ($_readini(%file,%topic,_shownames) isnum 0-2) { did -o %d 472 $1 $calc($ifmatch + 1) }
  else { did -o %d 472 $1 $null }
  if ($_readini(%file,%topic,_warnyournick) != $null) { did -o %d 463 $1 $ifmatch }
  else { did -o %d 463 $1 $null }

  if ($2) {
    did -o %d 464 $1 $_rinitxt($_nospaces(_msgonjoin,$2))
    did -o %d 465 $1 $_rinitxt($_nospaces(_msgonpart,$2))
  }
  else {
    did -o %d 464 $1 $_rinitxt(_msgonjoin)
    did -o %d 465 $1 $_rinitxt(_msgonpart)
  }

  if ($2) { var %t1 = $_readini($_chaninifile,$2,chanmode),%t2 = $_rinitxt($_nospaces(chanmode,$2)) }
  else { var %t1 = $_readini($_chaninifile,default,chanmode),%t2 = $_rinitxt(chanmode) }
  if (%t1 != $null) { did -o %d 466 $1 %t1 %t2 }
  else { did -o %d 466 $1 $null }

  if ($2) { var %t1 = $_readini($_chaninifile,$2,chantopic),%t2 = $_rinitxt($_nospaces(chantopic,$2)) }
  else { var %t1 = $_readini($_chaninifile,default,chantopic),%t2 = $_rinitxt(chantopic) }
  if (%t1 != $null) { did -o %d 467 $1 %t1 %t2 }
  else { did -o %d 467 $1 $null }

  var %t1 = $_readini(%file,%topic,_updateial),%t2 = $_readini(%file,%topic,_updateial.ask),%t3 = $_readini(%file,%topic,_updateial.asknum),%t4 = $_readini(%file,%topic,_updateial.nonono),%t5 = $_readini(%file,%topic,_updateial.nonononum)
  if (%t1 != $null) || ($1 == 1) { did -o %d 468 $1 $iif(%t1 isnum 0-2,$calc(%t1 + 1),1) $iif(%t2 isin 01,%t2,0) $iif($_isint(%t3),%t3,150) $iif(%t4 isin 01,%t4,0) $iif($_isint(%t5),%t5,200) }
  else { did -o %d 468 $1 $null }

  if ($_readini(%file,%topic,_updatebanlist) isnum 0-2) { did -o %d 469 $1 $calc($ifmatch + 1) }
  elseif ($1 == 1) { did -o %d 469 $1 1 }
  else { did -o %d 469 $1 $null }

  if ($_readini(%file,%topic,_cloneimmunes) != $null) { did -o %d 470 $1 $ifmatch }
  else { did -o %d 470 $1 $null }

  var %atmo = $_readini(%file,%topic,_autolimiter)
  if ($numtok(%atmo,32) == 3) && ($_isint($_nospaces(%atmo))) { did -o %d 471 $1 %atmo }
  elseif ($1 == 1) { did -o %d 471 $1 0 60 3 }
  else { did -o %d 471 $1 $null }
}
alias -l _chansetup.devent.ok {
  var %d = chansetup,%c,%cs = $_schans,%i = $numtok(%cs,32),%x,%y,%w,%ts
  if ($dialog(%d) == $null) { return }
  _chansetup.savebuf *
  while (%i) {
    %c = $gettok(%cs,%i,32)
    remini " $+ $_chaninifile $+ " %c
    _winitxt _msgonjoin $+ %c
    _winitxt _msgonpart $+ %c
    _winitxt chantopic $+ %c
    _winitxt chanmode $+ %c
    dec %i
  }
  var %i = 1
  while (%i <= $did(%d,2).lines) {
    var %ts = clearbans dynamicbans userbans autoop greet protectops protectfriends dontkickops wasoptest seen statuslog cycle revenge autovoice freevoice,%x = 1,%y = $numtok(%ts,32)
    if (%i > 1) {
      var %c = $did(%d,2,%i),%w = _wchini %c
      %w chan %c
    }
    else { var %c,%w = _wchini default }
    while (%x <= %y) {
      %w $gettok(%ts,%x,32) $gettok($did(%d,461,%i),%x,32)
      inc %x
    }
    %w _scanclones $iif($did(%d,462,%i) isnum 1-3,$calc($did(%d,462,%i) - 1),$null)
    %w _shownames $iif($did(%d,472,%i) isnum 1-3,$calc($did(%d,472,%i) - 1),$null)
    %w _warnyournick $did(%d,463,%i)
    _winitxt _msgonjoin $+ %c $did(%d,464,%i)
    _winitxt _msgonpart $+ %c $did(%d,465,%i)

    if ($gettok($did(%d,466,%i),1,32) != $null) {
      %w chanmode $ifmatch
      _winitxt chanmode $+ %c $strip($gettok($did(%d,466,%i),2-,32))
    }
    else {
      %w chanmode
      _winitxt chanmode $+ %c
    }

    if ($gettok($did(%d,467,%i),1,32) != $null) {
      %w chantopic $ifmatch
      _winitxt chantopic $+ %c $gettok($did(%d,467,%i),2-,32)
    }
    else {
      %w chantopic
      _winitxt chantopic $+ %c
    }

    var %zyz = $did(%d,468,%i)
    if (%zyz != $null) {
      %w _updateial $iif($gettok(%zyz,1,32) isnum 1-3,$calc($gettok(%zyz,1,32) - 1),$null)
      %w _updateial.ask $gettok(%zyz,2,32)
      %w _updateial.asknum $iif($_isint($gettok(%zyz,3,32)),$gettok(%zyz,3,32),150)
      %w _updateial.nonono $gettok(%zyz,4,32)
      %w _updateial.nonononum $iif($_isint($gettok(%zyz,5,32)),$gettok(%zyz,5,32),150)
    }
    else {
      %w _updateial
      %w _updateial.ask
      %w _updateial.asknum
      %w _updateial.nonono
      %w _updateial.nonononum
    }

    %w _updatebanlist $iif($did(%d,469,%i) isnum 1-3,$calc($did(%d,469,%i) - 1),$null)

    %w _cloneimmunes $did(%d,470,%i)
    %w _autolimiter $did(%d,471,%i)

    inc %i
  }
  _chansetup2chanprot
  .timer_autolimit.* off
  if ($_connected) {
    var %i = $chan(0),%chan
    while (%i) {
      %chan = $chan(%i)
      _enforce.topic %chan
      _enforce.modes %chan
      _autolimit.chan %chan
      dec %i
    }
  }
}
alias -l _chansetup.devent.addchan {
  var %d = chansetup,%cs = $_mychans,%i = $numtok(%cs,32),%win = @__chansetupdeventaddchan,%c,%csr
  if ($dialog(%d) == $null) { return }
  _openwins %win
  _dialog2win %d 2 %win *
  while (%i) {
    %c = $gettok(%cs,%i,32)
    if ($fline(%win,%c,0) == 0) { %csr = $addtok(%csr,%c,32) }
    dec %i
  }
  close -@ %win
  tokenize 32 $_selectedit($null,1,Channel Setup [/chansetup],ischan,$gettok(%csr,1,32),32,%csr,Channel:)
  if ($dialog(%d) == $null) { return }
  _chansetup.refresh $1 1 0
}
ON *:DIALOG:chansetup:init:0:{
  _mdx.init $_icofile(chansetup.ico)
  did -a $dname 153,1004,1104 Never (manually)
  did -a $dname 153,1004,1104 On Join
  did -a $dname 153,1004,1104 On Op
  did -c $dname 153 1
  did -c $dname 1004,1104 2
  did -a $dname 158 Show
  did -a $dname 158 Show resume
  did -a $dname 158 Hide
  did -c $dname 158 1
  did -ac $dname 2 --Global--
  _dummy $_lang.loaddialog($dname,_chansetup,00086969,main.lang,$scriptdir)
}
ON *:DIALOG:chansetup:sclick:*:{
  var %channel
  if ($did(2).sel > 1) { %channel = $did(2,$ifmatch) }
  if ($did == 2) { _chansetup.refresh $null 0 0 }
  elseif ($did == 3) { _chansetup.devent.addchan }
  elseif ($did == 4) {
    if ($did(2).sel > 1) {
      var %l = $ifmatch
      did -d $dname 2,461,462,463,464,465,466,467,468,469,472 $ifmatch
      did -c $dname 2 $iif(%l <= $did(2).lines,%l,$calc(%l - 1))
      _chansetup.refresh $null 0 0
    }
  }
  elseif ($did == 490) {
    _chansetup.devent.ok
    _unloadchansetupmrc
  }
  elseif ($did == 491) { _unloadchansetupmrc }
  else {
    __chansetup.refresh
    _chansetup.savebuf $did
  }
}
ON *:DIALOG:chansetup:edit:*:{ _chansetup.savebuf $did }

;;;;
;;;;

alias -l _unloadchansetupmrc { _quickunload chansetup $script }