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