SMF Script 8 — File Browser

SMFScript8v8.13 / SMFScript8v8.13 / system / users.mrc

users.mrc — 6.45 KB — Download this file

alias access :loop | inc -u0 %nck.acs.inc | set -u0 %nck.acs.chk $readini $users.ini users $readini $users.ini users %nck.acs.inc | if (%nck.acs.chk = $null) return none | if (%nck.acs.chk iswm $address($1,5)) { set -u0 %nck.acs.tmp $readini $users.ini %nck.acs.chk $2 | if (%nck.acs.tmp) return %nck.acs.tmp } | set -u0 %nck.acs.tmp.2 $readini $users.ini users $1 | if (%nck.acs.tmp.2) { set -u0 %nck.acs.tmp $readini $users.ini %nck.acs.tmp.2 $2 | if (%nck.acs.tmp) return %nck.acs.tmp } | return none | else goto loop
alias users.ini if ($chr(32) isin $scriptdirusers.ini) return $qts($scriptdirusers.ini) | return $scriptdirusers.ini
on *:JOIN:#:{
  if ($nick = $me) || (%usr.lst = $null) return
  if ($access($nick,$chan) = op) && ($me isop $chan) { if ($sets(usrlistwait) = yes) .timer 1 $sets(usrlistcheck) if ($nick !isop $chan) mode $chan +o $nick | else mode $chan +o $nick }
  if ($access($nick,$chan) = voice) && ($me isop $chan) { if ($sets(usrlistwait) = yes) .timer 1 $sets(usrlistcheck) if ($nick !isvo $chan) mode $chan +v $nick | else mode $chan +v $nick }
  if ($access($nick,$chan) = kick) && ($me isop $chan) { if ($sets(usrlistwait) = yes) .timer 1 $sets(usrlistcheck) if ($nick ison $chan) kick $chan $nick blacklisted | else kick $chan $nick blacklisted }
  if ($access($nick,$chan) = kickban) && ($me isop $chan) { if ($sets(usrlistwait) = yes) .timer 1 $sets(usrlistcheck) urs.lst.bk $chan $nick c | else urs.lst.bk $chan $nick }
}
alias urs.lst.bk if ($3) && ($2 !ison $1) return | mode $$1 +b $$address($2,3) | kick $1 $$2 blacklisted
alias usr.lst.dlt.mn {
  if ($dialog(usr.lst.dtl) = $null) dialog -mn usr.lst.dtl usr.lst.dtl
  did -r usr.lst.dtl 2,5,6
  set %usr.lst.grp.nme $readini $users.ini users $1
  set %usr.lst.nme $1
  did -a usr.lst.dtl 5 $1
  did -a usr.lst.dtl 6 %usr.lst.grp.nme
  :loop
  inc %usr.lst.cnt
  set %usr.lst.txt $readini $users.ini %usr.lst.grp.nme %usr.lst.cnt
  if (%usr.lst.txt) { did -a usr.lst.dtl 2 %usr.lst.txt $readini $users.ini %usr.lst.grp.nme %usr.lst.txt
  goto loop }
  if ($comchan($1,0) = 0) did -b usr.lst.dtl 7
  unset %usr.lst.cnt %usr.lst.txt
}
dialog usr.lst.dtl {
  title "User List Console"
  size -1 -1 300 260
  list 2,9 43 282 170
  edit "" 5,9 15 93 23,read,autohs
  edit "" 6,102 15 189 23,autohs
  button "Add",3,17 215 54 26
  button "Remove",4,76 215 54 26
  button "Update Address",7,135 215 89 26
  button "Close",1,229 215 54 26,cancel
}
on *:dialog:usr.lst.dtl:sclick:1: usr.lst.updt $did(5) $did(6)
on *:dialog:usr.lst.dtl:sclick:4: if ($did(2,$did(2).sel)) .timer 1 0 usr.lst.rmv.chn %usr.lst.nme $gettok($did(2,$did(2).sel),1,32)
on *:dialog:usr.lst.dtl:sclick:3: set %u.l.f.c $did(6) | usr.lst.add $did(5)
on *:dialog:usr.lst.dtl:sclick:7: usr.lst.updt $did(5) $address($did(5),3)
alias usr.lst.updt set -u0 %usrlst.addy.old $readini $qts($scriptdirusers.ini) users $1 | if (%usrlst.addy.old = $2) return | :loop | inc %usrlst.addy.inc | set %usrlst.addy.tmp $readini $qts($scriptdirusers.ini) %usrlst.addy.old %usrlst.addy.inc | if (%usrlst.addy.tmp) { writeini $qts($scriptdirusers.ini) [ $2 ] %usrlst.addy.inc %usrlst.addy.tmp | writeini $qts($scriptdirusers.ini) [ $2 ] %usrlst.addy.tmp $readini $qts($scriptdirusers.ini) %usrlst.addy.old %usrlst.addy.tmp | goto loop } | remini $qts($scriptdirusers.ini) %usrlst.addy.old | writeini $qts($scriptdirusers.ini) users $1 $2 | unset %usrlst.addy.* | if ($dialog(usr.lst.dtl)) did -ra usr.lst.dtl 6 $2
alias usr.lst.rmv.chn :loop | inc %usr.lst.cnt | set %usr.lst.nme $readini $users.ini users $1 | set %usr.lst.txt $readini $users.ini %usr.lst.nme %usr.lst.cnt | if (%usr.lst.txt = $null) goto end | if (%usr.lst.txt != $2) goto loop | remini $users.ini %usr.lst.nme %usr.lst.cnt | remini $users.ini %usr.lst.nme $2 | set %usr.lst.cnt.2 $calc(%usr.lst.cnt - 1) | :remloop | inc %usr.lst.cnt | inc %usr.lst.cnt.2 | set %usr.lst.txt $readini -n $users.ini %usr.lst.nme %usr.lst.cnt | if (%usr.lst.txt) { writeini $users.ini %usr.lst.nme %usr.lst.cnt.2 %usr.lst.txt | remini $users.ini %usr.lst.nme %usr.lst.cnt | goto remloop } | :end | unset %usr.lst.cn* %usr.lst.txt | did -r usr.lst.dtl 2,5,6 | usr.lst.dlt.mn $1
alias usr.lst.add if ($dialog(usr.lst.add) = $null) dialog -mn usr.lst.add usr.lst.add | set -u0 %usr.lst.chk $readini $users.ini users $1 | if (%usr.lst.chk) set %u.l.f.c $readini $users.ini users $1 | if ($address($1,3) = $null) && (%u.l.f.c = $null) { dialog -c usr.lst.add | echo $colour(info) -a * $1 $+ 's address could not be retrieved. | return } | did -a usr.lst.add 4 $1 | did -a usr.lst.add 5 $address($1,3) | if (%u.l.f.c) did -ra usr.lst.add 5 %u.l.f.c | set %usr.lst.nick $1 | set %usr.lst.addy $address($1,3) | if (%u.l.f.c) set %usr.lst.addy %u.l.f.c | if ($2) did -a usr.lst.add 10 $2 | else did -a usr.lst.add 10 #channel
dialog usr.lst.add {
  title "User List Console"
  size -1 -1 300 188
  button "Close",1,151 148 54 26,cancel
  button "Add",3,92 148 54 26
  edit "" 4,10 15 93 23,read,autohs
  edit "" 5,103 15 187 23,read,autohs
  radio "Op", 6, 10 48 50 13
  radio "Voice", 7, 10 66 50 13
  radio "Kick", 8, 10 84 50 13
  radio "Kickban", 9, 10 103 60 13
  edit "",10, 10 121 280 23,autohs
}
on *:dialog:usr.lst.add:sclick:*: if ($did = 6) set %usr.lst.mod $did(6) | if ($did = 7) set %usr.lst.mod $did(7) | if ($did = 8) set %usr.lst.mod $did(8) | if ($did = 9) set %usr.lst.mod $did(9) | if ($did = 3) && ($did(10)) && (%usr.lst.mod) { usr.lst.add.new $did(10) %usr.lst.mod | dialog -c usr.lst.add } | if ($did = 1) unset %u.l.f.c
alias usr.lst.add.new {
  set %usr.lst.chan $did(10)
  if ($chr(35) !isin %usr.lst.chan) set %usr.lst.chan $chr(35) $+ %usr.lst.chan
  set %usr.lst.chk $readini $users.ini %usr.lst.addy %usr.lst.chan
  if (%usr.lst.chk) goto end
  :loop
  inc %usr.lst.cnt
  set %usr.lst.chk $readini $users.ini %usr.lst.addy %usr.lst.cnt
  if (%usr.lst.chk) goto loop
  writeini $users.ini %usr.lst.addy %usr.lst.cnt %usr.lst.chan
  set %usr.lst.chk $readini $users.ini users %usr.lst.nick
  if (%usr.lst.chk = $null) { writeini $users.ini users %usr.lst.nick %usr.lst.addy
    set %usr.lst.cnt 0
    :loop2
    inc %usr.lst.cnt
    set %usr.lst.chk $readini $users.ini users %usr.lst.cnt
    if (%usr.lst.chk) goto loop2
  writeini $users.ini users %usr.lst.cnt %usr.lst.nick }
  :end
  writeini $users.ini %usr.lst.addy %usr.lst.chan %usr.lst.mod
  unset %usr.lst.chan %usr.lst.addy %usr.lst.chk %usr.lst.cnt %usr.lst.nick %usr.lst.mod
  if ($dialog(usr.lst.dtl)) { dialog -c usr.lst.dtl | usr.lst.dlt.mn %usr.lst.nme }
}