EIRCD Services — File Browser
EIRCDServicesv3.1 / EIRCDServicesv3.1 / EIRCD Services.mrc
EIRCD Services.mrc — 66.79 KB — Download this file
;######################################################################################################
;######################################################################################################
;#### ####
;#### EIRCD Services v3.1 ####
;#### ####
;######################################################################################################
;######################################################################################################
;
;
;
;
;
;
;
;
;
;
;
; Before using EIRCD Services please read the help file and change any of the settings that you need.
;
;
;
;
;
;
;
;
;
;
;
;
;
;
alias eircdserv {
if ($exists($+(",$scriptdir,settings.ini,")) == $false) { .echo -q $input(Your configuration is missing.,o,Error.) | return }
elseif ($exists($+(",$scriptdir,help.ini,")) == $false) { .echo -q $input(Your ChanServ help is missing.,o,Error.) | return }
if ($eircdserv.set(other,accountlen) !isnum 1-) || ($eircdserv.set(other,hskick) !isnum) || (#* !iswm $eircdserv.set(other,mainchan)) || (!$eircdserv.set(other,tmstart)) || (!$eircdserv.set(other,tmend)) { .echo -q $input(Your configuration is incorrect.,o,Error.) | return }
if ($gettok($eircdserv.set(other,csaccount),0,32) != 2) && ($gettok($eircdserv.set(other,hsaccount),0,32) != 2) { .echo -q $input(Your ChanServ or HelpServ accounts are incorrect.,o,Error.) | return }
if (!$sock(eircd2)) { .echo -q $input(EIRCD is not on.,o,Error.) | return }
window -Ek0 @EIRCDServices -1 -1 1 1 | titlebar @EIRCDServices Console
sockopen eircdserv.cs 127.0.0.1 $sock(eircd2).port
var %a $ini($+(",$scriptdir,chanset.ini,"),0)
while %a { hmake cs. [ $+ [ $v1 ] ] 100 | hload -i cs. [ $+ [ $v1 ] ] $+(",$scriptdir,chanset.ini,") $v1 | dec %a }
.remove $+(",$scriptdir,chanset.ini,")
}
alias eircdservoff {
window -c @EIRCDServices
unset %eircdserv.temp
sockclose eircdserv.*
var %i 1 | while %i <= $hget(0) { if (cs.* !iswm $hget(%i)) { inc %i | continue } | hdel $hget(%i) names | hsave -i $hget(%i) $+(",$scriptdir,chanset.ini,") $right($hget(%i),-3) | hfree $hget(%i) }
while ($ini($+(",$scriptdir,settings.ini,"),logged,1)) remini $+(",$scriptdir,settings.ini,") logged $ini($+(",$scriptdir,settings.ini,"),logged,1)
hfree -w hs.*
}
on *:CLOSE:@:{ if ($target == @EIRCDServices) { eircdservoff } }
alias eserv { return 3 }
alias -l eircdserv.set { return $readini($scriptdirsettings.ini,$1,$2) }
alias -l eircdserv.acc { return $iif($eircdserv.set($2,$eircdserv.set(logged,$1)),$ifmatch,0) }
alias -l eircd.find { return $iif($hfind(users,$1,$2,w).data,$hfind(users,$1,$2,w).data,$iif($hfind(ircops,$1,$2,w).data,$hfind(ircops,$1,$2,w).data)) }
alias -l eircdserv.info { echo $color($1) @EIRCDServices $iif($2 != *,$+($2,$chr(40),$3,/,$iif($eircdserv.set(logged,$2),$eircdserv.set(logged,$2),Not Loged In),$chr(41),:),*) $iif($2 != *,$4-,$3-) }
alias -l eircd.info { echo $color($1) @EIRCD $iif($2 != *,$+($2,$chr(40),$iif($eircd.user($2,1),$eircd.user($2,1),CONNECTING),/,$iif($eircd.user($2,3),$eircd.user($2,3),CONNECTING),$chr(41),:),*) $3- }
alias -l eircd.ircop { return $iif($hget(ircops,$1),$true) }
on *:SOCKOPEN:eircdserv.cs:{ sockwrite -n $sockname NICK CSLogin | sockwrite -n $sockname USER ChanServ "Chan.Serv" "127.0.0.1" :ChanServ }
on *:SOCKOPEN:eircdserv.hs:{ sockwrite -n $sockname NICK HSLogin | sockwrite -n $sockname USER HelpServ "Help.Serv" "127.0.0.1" :HelpServ }
on *:SOCKREAD:eircdserv.cs:{
var %sockread
sockread %sockread
tokenize 32 %sockread
if ($2 == 376) { set %eircdserv.temp $1 | sockwrite -n $sockname OPER $eircdserv.set(other,csaccount) }
elseif ($1 == %eircdserv.temp) && ($2 == NOTICE) && ($4- == :That is an invalid Oper account. All Opers have been notified of the failed login attempt.) { eircdserv.info info * ChanServ Oper account missing. All services stopped. | eircdservoff }
elseif ($1 == %eircdserv.temp) && ($2 == NOTICE) && ($4- == :That is an invalid password. All Opers have been notified of the failed login attempt.) { eircdserv.info info * ChanServ Oper password incorrect. All services stopped. | eircdservoff }
elseif ($1 == %eircdserv.temp) && ($2 == NOTICE) && ($4- == :You have successfully logged in as an Oper.) { eircdserv.info info * ChanServ started successfully. | sockwrite -n $sockname NICK :ChanServ }
elseif ($2 == 433) { eircdserv.info info * The nick ChanServ is in use. All services stopped. | eircdservoff }
elseif ($2 == 353) { hadd -m cs. [ $+ [ $5 ] ] names $replace($right($6-,-1),@,,+,) }
elseif ($2 == 332) { hadd -m cs. [ $+ [ $4 ] ] topic $right($5-,-1) }
}
on *:SOCKREAD:eircdserv.hs:{
var %sockread
sockread %sockread
tokenize 32 %sockread
if ($2 == 376) { sockwrite -n $sockname OPER $eircdserv.set(other,hsaccount) }
elseif ($1 == %eircdserv.temp) && ($2 == NOTICE) && ($4- == :That is an invalid Oper account. All Opers have been notified of the failed login attempt.) { eircdserv.info info * HelpServ Oper account missing. All services stopped. | eircdservoff }
elseif ($1 == %eircdserv.temp) && ($2 == NOTICE) && ($4- == :That is an invalid password. All Opers have been notified of the failed login attempt.) { eircdserv.info info * HelpServ Oper password incorrect. All services stopped. | eircdservoff }
elseif ($1 == %eircdserv.temp) && ($2 == NOTICE) && ($4- == :You have successfully logged in as an Oper.) { eircdserv.info info * HelpServ started successfully. | sockwrite -n $sockname NICK :HelpServ }
elseif ($2 == 433) { eircdserv.info info * The nick HelpServ is in use. All services stopped. | eircdservoff }
elseif ($2 == 353) {
var %i 1
while %i <= $gettok($right($6-,-1),0,32) {
echo -s $+(",$remove($gettok($right($6-,-1),%i,32),@,+),")
if ($istok(ChanServ HelpServ,$remove($gettok($right($6-,-1),%i,32),@,+),32)) { inc %i | continue }
if (@* iswm $gettok($right($6-,-1),%i,32)) { hadd -m hs.helpers $remove($gettok($right($6-,-1),%i,32),@) . | sockwrite -n $sockname PRIVMSG $remove($gettok($right($6-,-1),%i,32),@) :Hello $remove($gettok($right($6-,-1),%i,32),@) $+ ! The help list is being populated. }
elseif ($left($gettok($right($6-,-1),%i,32),1) != +) { hadd -m hs.help $gettok($right($6-,-1),%i,32) Not specified. | sockwrite -n $sockname PRIVMSG $gettok($right($6-,-1),%i,32) :Welcome to $5 $+ ! You are $hget(hs.help,0).item on the list to be helped. Please wait patiently for a helper to be assigned to you. | sockwrite -n $sockname PRIVMSG $gettok($right($6-,-1),%i,32) :To get help quicker, type /desc Information about your problem. }
inc %i
}
}
}
on *:SIGNAL:eircd:{
if ($1 == unknown) && ($4 == serv) { if ($eircd.ircop($2)) { if ($5 == on) { eircdserv } | elseif ($5 == off) { eircdservoff } | elseif ($5 == restart) { eircdservoff | eircdserv } | else { enotice $2 Services You must supply either on, off, or restart.))) } } | else { enotice $2 Services You must be an Oper to use that command. } }
if (!$sock(eircdserv.cs)) { return }
var %cs eircdserv.cs, %hs eircdserv.hs
if ($1 == nick) && ($3 == CSLogin) && ($4 == ChanServ) { eircdserv.info nick * ChanServ nick change successfull! Joining channels and starting HelpServ. | sockopen eircdserv.hs 127.0.0.1 $sock(eircd2).port | var %i 1 | while %i <= $ini($scriptdirsettings.ini,0) { if (#* iswm $ini($scriptdirsettings.ini,%i)) { sockwrite -n %cs JOIN $ini($scriptdirsettings.ini,%i) | sockwrite -n %cs MODE $ini($scriptdirsettings.ini,%i) | sockwrite -n %cs MODE $ini($scriptdirsettings.ini,%i) +o ChanServ | if ($hget(cs. $+ $ini($scriptdirsettings.ini,%i),topic)) { sockwrite -n eircdserv.cs TOPIC $ini($scriptdirsettings.ini,%i) : $+ $hget(cs. $+ $ini($scriptdirsettings.ini,%i),topic) } } | inc %i } }
elseif ($1 == nick) && ($3 == HSLogin) && ($4 == HelpServ) { unset %eircdserv.temp | eircdserv.info nick * HelpServ nick change successfull! Joining main channel. | sockwrite -n %hs JOIN $eircdserv.set(other,mainchan) | sockwrite -n %hs MODE $eircdserv.set(other,mainchan) | sockwrite -n %hs MODE $eircdserv.set(other,mainchan) +om HelpServ }
elseif ($1 == privmsg) && (#* iswm $4) { if (!#* iswm $5) { eircdserv.cs $2-3 $right($5,-1) $6- } | elseif (!* iswm $5) { eircdserv.cs $2-3 $4 $right($5-,-1) } }
elseif ($1 == unknown) && ($4 == CS) { eircdserv.cs $2-3 $iif(#* iswm $5,$5-,cs $5-) }
elseif ($1 == unknown) && ($istok(hnext hdone hdesc,$4,32)) { eircdserv.hs $2-3 $4- }
elseif ($1 == join) && ($hget(cs. $+ $4)) {
if ($eircdserv.acc($2,$4) >= 200) { sockwrite -n %cs MODE $4 +o $3 }
elseif ($eircdserv.acc($2,$4) isnum 100-199) { sockwrite -n %cs MODE $4 +v $3 }
if ($4 == $eircdserv.set(other,mainchan)) && (!$istok(ChanServ HelpServ,$3,32)) {
if ($eircdserv.acc($2,$4) >= 200) { sockwrite -n %hs PRIVMSG $3 :Hello $3 $+ ! There are $hget(hs.help,0).item people waiting to be helped. | hadd hs.helpers $2 . }
else { hadd -m hs.help $3 Not Specified. | sockwrite -n %hs PRIVMSG $3 :Welcome to $4 $+ ! You are $hget(hs.help,0).item on the list to be helped. Please wait patiently for a helper to be assigned to you. | sockwrite -n %hs PRIVMSG $3 :To get help quicker, type /hdesc Information about your problem. }
}
hadd cs. [ $+ [ $4 ] ] names $hget(cs. $+ $4,names) $3
}
elseif ($1 == part) && ($hget(cs. $+ $4)) { hadd cs. [ $+ [ $4 ] ] names $remtok($hget(cs. $+ $4,names),$3,1,32) | if ($hget(hs.help,$3)) { hdel hs.help $3 | enotice $1 HelpServ You have been removed from the help list. } | if ($hget(hs.helpers,$2)) { hdel hs.helpers $2 } }
elseif ($1 == quit) { var %i 1 | while %i <= $hget(0) { if (cs.* iswm $hget(%i)) { hadd $hget(%i) names $remtok($hget($hget(%i),names),$3,1,32) } | inc %i } | if ($eircdserv.set(logged,$2)) { remini $+(",$scriptdir,settings.ini,") logged $2 } | if ($hget(hs.help,$3)) { hdel hs.help $3 } | if ($hget(hs.helpers,$3)) { hdel hs.helpers $3 } }
elseif ($1 == kick) { if ($istok(ChanServ HelpServ,$6,32)) { sockwrite -n $iif($6 == ChanServ,%cs,%hs) JOIN $4 | sockwrite -n $iif($6 == ChanServ,%cs,%hs) MODE $4 | sockwrite -n $iif($6 == ChanServ,%cs,%hs) MODE $4 +o $6 | if ($6 == ChanServ) { sockwrite -n %cs KICK $4 $3 :You are not allowed to kick that user. } } | hadd cs. [ $+ [ $4 ] ] names $remtok($hget(cs. $+ $4,names),$3,1,32) | if ($hget(hs.help,$3)) { hdel hs.help $3 } | if ($hget(hs.helpers,$3)) { hdel hs.helpers $3 } }
elseif ($1 == nick) { var %i 1 | while %i <= $hget(0) { if (cs.* iswm $hget(%i)) { hadd $hget(%i) names $reptok($hget($hget(%i),names),$3,$4,1,32) } | inc %i } | if ($hget(hs.help,$3)) { hdel hs.help $3 | hadd hs.help $4 } | if ($hget(hs.helpers,$3)) { hdel hs.helpers $3 | hadd hs.helpers $4 } }
elseif ($1 == mode) && ($5 == -o) && ($6 == ChanServ) { sockwrite -n eircdserv.cs MODE $4 +o ChanServ }
elseif ($1 == mode) && ($5 == -o) && ($6 == HelpServ) { sockwrite -n eircdserv.hs MODE $4 +o HelpServ }
elseif ($1 == mode) && ($4 == $eircdserv.set(other,mainchan)) && ($5 == -m) { sockwrite -n eircdserv.hs MODE $4 +m }
elseif ($1 == motd) { enotice $2 ChanServ The server is currently running EIRCD Services v3.1. }
if ($1 == mode) && ($hget(cs. $+ $4,modelock)) {
var %a 1,%modelock+,%modelock-,%m+ +,%m- -,%+- $left($5,1)
.echo -q $regsub($gettok($hget(cs. $+ $4,modelock),1,32),/(.)/g,\1\.,%modelock+)
if ($gettok($hget(cs. $+ $4,modelock),2,32)) .echo -q $regsub($gettok($hget(cs. $+ $4,modelock),2,32),/(.)/g,\1\.,%modelock-)
while %a <= $len($5) { if ($istok(+ -,$mid($5,%a,1),32)) %+- = $mid($5,%a,1) | elseif (%+- == -) && ($istokcs(%modelock+,$mid($5,%a,1),46)) %m+ = %m+ $+ $mid($5,%a,1) | elseif (%+- == +) && ($istokcs(%modelock-,$mid($5,%a,1),46)) %m- = %m- $+ $mid($5,%a,1) | inc %a }
if (%m+ != +) || (%m- != -) sockwrite -n eircdserv.cs MODE $4 %m+ $+ %m-
}
}
alias eircdserv.cs {
eircdserv.info own $1-2 ChanServ $iif($3 != cs,$3 ! $+ $4-,/cs $4-)
if ($3 == cs) && ($4 == help) {
if (!$ini($scriptdirhelp.ini,$iif($5,$5,help))) { enotice $1 ChanServ There is no help on that topic. }
else { var %i 1 | while %i <= $ini($scriptdirhelp.ini,$iif($5,$5,help),0) { enotice $1 ChanServ $replace($readini($scriptdirhelp.ini,$iif($5,$5,help),%i),,,~,$chr(160)) | inc %i } }
}
elseif ($3 != cs) && ($4 == help) { enotice $1 ChanServ You must use /cs help for that command. }
; ACCOUNT
elseif ($3 == cs) && ($4 == register) {
if ($eircdserv.set(logged,$1)) { enotice $1 ChanServ You are already logged in to account $eircdserv.set(logged,$1) $+ . | return }
if (!$5) { enotice $1 ChanServ You must supply an account and password | return }
if ($len($5) > $eircdserv.set(other,accountlen)) { enotice $1 ChanServ The account name is too long( $+ $eircdserv.set(other,accountlen) charactors max) | return }
if ($regex($5,/[a-zA-Z0-9_]/g) != $len($5)) { enotice $1 ChanServ Invalid account name. Only letters, numbers, and _ allowed. | return }
if ($eircdserv.set(accounts,$5)) { enotice $1 ChanServ That account is already registered. | return }
if (!$6) { enotice $1 ChanServ You must supply a password. | return }
if ($regex($6,/[a-zA-Z0-9_]/g) != $len($6)) { enotice $1 ChanServ Invalid password. Only letters, numbers, and _ allowed. | return }
writeini $+(",$scriptdir,settings.ini,") accounts $5 $md5($6)
enotice $1 ChanServ The account $5 has successfully been registered.
}
elseif ($3 != cs) && ($4 == register) { enotice $1 ChanServ You must use /cs register for that command. }
elseif ($3 == cs) && ($4 == auth) {
if ($eircdserv.set(logged,$1)) { enotice $1 ChanServ You are already logged in to account $eircdserv.set(logged,$1) $+ . | return }
if (!$eircdserv.set(accounts,$5)) { enotice $1 ChanServ That is an invalid account. | return }
if ($md5($6) != $eircdserv.set(accounts,$5)) { enotice $1 ChanServ That is and invalid password. | return }
var %i 1 | while %i <= $ini($+(",$scriptdir,settings.ini,"),logged,0) { if ($eircdserv.set(logged,$ini($+(",$scriptdir,settings.ini,"),logged,%i)) == $5) { enotice $1 ChanServ That account is already in use. | return } | inc %i }
writeini $+(",$scriptdir,settings.ini,") logged $1 $5
enotice $1 ChanServ You have successfully logged into account $5 $+ .
}
elseif ($3 != cs) && ($4 == auth) { enotice $1 ChanServ You must use /cs auth for that command. }
elseif ($3 == cs) && ($4 == newpass) {
if (!$eircdserv.set(logged,$1)) { enotice $1 ChanServ You are not logged in. | return }
if (!$6) { enotice $1 ChanServ You must supply the old password and a new password. | return }
if ($md5($5) != $eircdserv.set(accounts,$eircdserv.set(logged,$1))) { enotice $1 ChanServ The password is incorrect. | return }
writeini $+(",$scriptdir,settings.ini,") accounts $eircdserv.set(logged,$1) $md5($5)
enotice $1 ChanServ Your password has been successfully changed.
}
elseif ($3 != cs) && ($4 == newpass) { enotice $1 ChanServ You must use /cs newpass for that command. }
; USER
elseif ($4 == addcoowner) {
if ($eircdserv.acc($1,$3) < 500) { enotice $1 ChanServ You don't have enough access for that command. | return }
if ($5 == ChanServ) || ($4 == HelpServ) { enotice $1 ChanServ This command does not work for ChanServ or HelpServ. | return }
if ($istok($hget(cs. $+ $3,names),$5,32)) {
if (!$eircdserv.set(logged,$eircd.find($5 *,1))) { enotice $1 ChanServ That user must first login. | return }
if ($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))) isnum 400-499) { enotice $1 ChanServ That user is already a co-owner. | return }
if ($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))) == 500) { enotice $1 ChanServ That user is already an owner of the channel. | return }
writeini $+(",$scriptdir,settings.ini,") $3 $eircdserv.set(logged,$eircd.find($5 *,1)) 400
enotice $1 ChanServ $5 has been successfully added as a co-owner.
}
elseif ($ini($+(",$scriptdir,settings.ini,"),accounts,$5)) {
if ($eircdserv.set($3,$5) isnum 400-499) { enotice $1 ChanServ That account is already a co-owner. | return }
if ($eircdserv.set($3,$5) == 500) { enotice $1 ChanServ That account is already an owner of the channel. | return }
writeini $+(",$scriptdir,settings.ini,") $3 $5 400
enotice $1 ChanServ The accont $5 has been successfully added as a co-owner.
}
else { enotice $1 ChanServ That user is not in the channel. | return }
}
elseif ($4 == addmaster) {
if ($eircdserv.acc($1,$3) < 400) { enotice $1 ChanServ You don't have enough access for that command. | return }
if ($5 == ChanServ) || ($4 == HelpServ) { enotice $1 ChanServ This command does not work for ChanServ or HelpServ. | return }
if ($istok($hget(cs. $+ $3,names),$5,32)) {
if (!$eircdserv.set(logged,$eircd.find($5 *,1))) { enotice $1 ChanServ That user must first login. | return }
if ($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))) isnum 300-399) { enotice $1 ChanServ That user is already a master. | return }
if ($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))) isnum 400-499) { enotice $1 ChanServ That user is already a co-owner. | return }
if ($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))) == 500) { enotice $1 ChanServ That user is already the owner. | return }
writeini $+(",$scriptdir,settings.ini,") $3 $eircdserv.set(logged,$eircd.find($5 *,1)) 300
enotice $1 ChanServ $5 has been successfully added as a master.
}
elseif ($ini($+(",$scriptdir,settings.ini,"),accounts,$5)) {
if ($eircdserv.set($3,$5) isnum 300-399) { enotice $1 ChanServ That account is already a master. | return }
if ($eircdserv.set($3,$5) isnum 400-499) { enotice $1 ChanServ That account is already a co-owner. | return }
if ($eircdserv.set($3,$5) == 500) { enotice $1 ChanServ That account is already the owner. | return }
writeini $+(",$scriptdir,settings.ini,") $3 $5 300
enotice $1 ChanServ The accont $5 has been successfully added as a master.
}
else { enotice $1 ChanServ That user is not in the channel. | return }
}
elseif ($4 == addop) {
if ($eircdserv.acc($1,$3) < 300) { enotice $1 ChanServ You don't have enough access for that command. | return }
if ($5 == ChanServ) || ($4 == HelpServ) { enotice $1 ChanServ This command does not work for ChanServ or HelpServ. | return }
if ($istok($hget(cs. $+ $3,names),$5,32)) {
if (!$eircdserv.set(logged,$eircd.find($5 *,1))) { enotice $1 ChanServ That user must first login. | return }
if ($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))) isnum 200-299) { enotice $1 ChanServ That user is already an op. | return }
if ($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))) isnum 300-399) { enotice $1 ChanServ That user is already a master. | return }
if ($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))) isnum 400-499) { enotice $1 ChanServ That user is already a co-owner. | return }
if ($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))) == 500) { enotice $1 ChanServ That user is already the owner. | return }
writeini $+(",$scriptdir,settings.ini,") $3 $eircdserv.set(logged,$eircd.find($5 *,1)) 200
enotice $1 ChanServ $5 has been successfully added as an op.
}
elseif ($ini($+(",$scriptdir,settings.ini,"),accounts,$5)) {
if ($eircdserv.set($3,$5) isnum 200-299) { enotice $1 ChanServ That account is already an op. | return }
if ($eircdserv.set($3,$5) isnum 300-399) { enotice $1 ChanServ That account is already a master. | return }
if ($eircdserv.set($3,$5) isnum 400-499) { enotice $1 ChanServ That account is already a co-owner. | return }
if ($eircdserv.set($3,$5) == 500) { enotice $1 ChanServ That account is already the owner. | return }
writeini $+(",$scriptdir,settings.ini,") $3 $5 200
enotice $1 ChanServ The accont $5 has been successfully added as an op.
}
else { enotice $1 ChanServ That user is not in the channel. | return }
}
elseif ($4 == addpeon) {
if ($eircdserv.acc($1,$3) < 200) { enotice $1 ChanServ You don't have enough access for that command. | return }
if ($5 == ChanServ) || ($4 == HelpServ) { enotice $1 ChanServ This command does not work for ChanServ or HelpServ. | return }
if ($istok($hget(cs. $+ $3,names),$5,32)) {
if (!$eircdserv.set(logged,$eircd.find($5 *,1))) { enotice $1 ChanServ That user must first login. | return }
if ($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))) isnum 100-199) { enotice $1 ChanServ That user is already a peon. | return }
if ($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))) isnum 200-299) { enotice $1 ChanServ That user is already an op. | return }
if ($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))) isnum 300-399) { enotice $1 ChanServ That user is already a master. | return }
if ($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))) isnum 400-499) { enotice $1 ChanServ That user is already a co-owner. | return }
if ($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))) == 500) { enotice $1 ChanServ That user is already the owner. | return }
writeini $+(",$scriptdir,settings.ini,") $3 $eircdserv.set(logged,$eircd.find($5 *,1)) 100
enotice $1 ChanServ $5 has been successfully added as a peon.
}
elseif ($ini($+(",$scriptdir,settings.ini,"),accounts,$5)) {
if ($eircdserv.set($3,$5) isnum 100-199) { enotice $1 ChanServ That account is already a peon. | return }
if ($eircdserv.set($3,$5) isnum 200-299) { enotice $1 ChanServ That account is already an op. | return }
if ($eircdserv.set($3,$5) isnum 300-399) { enotice $1 ChanServ That account is already a master. | return }
if ($eircdserv.set($3,$5) isnum 400-499) { enotice $1 ChanServ That account is already a co-owner. | return }
if ($eircdserv.set($3,$5) == 500) { enotice $1 ChanServ That account is already the owner. | return }
writeini $+(",$scriptdir,settings.ini,") $3 $5 100
enotice $1 ChanServ The accont $5 has been successfully added as a peon.
}
else { enotice $1 ChanServ That user is not in the channel. | return }
}
elseif ($4 == adduser) {
if ($eircdserv.acc($1,$3) < 200) { enotice $1 ChanServ You don't have enough access for that command. | return }
if ($5 == ChanServ) || ($4 == HelpServ) { enotice $1 ChanServ This command does not work for ChanServ or HelpServ. | return }
if ($istok($hget(cs. $+ $3,names),$5,32)) {
if (!$istok($hget(cs. $+ $3,names),$5,32)) { enotice $1 ChanServ That user is not in the channel. | return }
if (!$eircdserv.set(logged,$eircd.find($5 *,1))) { enotice $1 ChanServ That user must first login. | return }
if ($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1)))) { enotice $1 ChanServ That user already has access to $3 $+ . | return }
if ($6 !isnum 1-500) { enotice $1 ChanServ That is an invalid access level. | return }
if ($eircdserv.acc($1,$3) <= $6) { enotice $1 ChanServ You can not add a user with the same, or higher access than yourself. | return }
writeini $+(",$scriptdir,settings.ini,") $3 $eircdserv.set(logged,$eircd.find($5 *,1)) $6
enotice $1 ChanServ $5 has been successfully added with $6 access.
}
elseif ($ini($+(",$scriptdir,settings.ini,"),accounts,$5)) {
if ($eircdserv.set($3,$5)) { enotice $1 ChanServ That account already has access to $3 $+ . | return }
if ($6 !isnum 1-500) { enotice $1 ChanServ That is an invalid access level. | return }
if ($eircdserv.acc($1,$3) <= $6) { enotice $1 ChanServ You can not add an account with the same, or higher access than yourself. | return }
writeini $+(",$scriptdir,settings.ini,") $3 $5 $6
enotice $1 ChanServ The account $5 has been successfully added with $6 access.
}
else { enotice $1 ChanServ That user is not in the channel. | return }
}
elseif ($4 == clvl) {
if ($eircdserv.acc($1,$3) < 200) { enotice $1 ChanServ You don't have enough access for that command. | return }
if ($5 == ChanServ) || ($4 == HelpServ) { enotice $1 ChanServ This command does not work for ChanServ or HelpServ. | return }
if ($istok($hget(cs. $+ $3,names),$5,32)) {
if (!$istok($hget(cs. $+ $3,names),$5,32)) { enotice $1 ChanServ That user is not in the channel. | return }
if (!$eircdserv.set(logged,$eircd.find($5 *,1))) { enotice $1 ChanServ That user must first login. | return }
if (!$eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1)))) { enotice $1 ChanServ That user doesn't have access to $3 $+ . | return }
if ($6 !isnum 1-500) { enotice $1 ChanServ That is an invalid access level. | return }
if ($eircdserv.acc($1,$3) <= $6) { enotice $1 ChanServ You can not clvl a user to the same, or higher access than yourself. | return }
if ($eircdserv.acc($1,$3) <= $eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1)))) { enotice $1 ChanServ You can not clvl a user with the same, or higher access than yourself. | return }
writeini $+(",$scriptdir,settings.ini,") $3 $eircdserv.set(logged,$eircd.find($5 *,1)) $6
enotice $1 ChanServ $5 has been successfully clvled to $6 access.
}
elseif ($ini($+(",$scriptdir,settings.ini,"),accounts,$5)) {
if (!$eircdserv.set($3,$5)) { enotice $1 ChanServ That account doesn't have access to $3 $+ . | return }
if ($6 !isnum 1-500) { enotice $1 ChanServ That is an invalid access level. | return }
if ($eircdserv.acc($1,$3) <= $6) { enotice $1 ChanServ You can not clvl an account to the same, or higher access than yourself. | return }
if ($eircdserv.acc($1,$3) <= $eircdserv.set($3,$5)) { enotice $1 ChanServ You can not clvl an account with the same, or higher access than yourself. | return }
writeini $+(",$scriptdir,settings.ini,") $3 $5 $6
enotice $1 ChanServ The account $5 has been successfully clvled to $6 access.
}
else { enotice $1 ChanServ That user is not in the channel. | return }
}
elseif ($4 == deluser) {
if ($eircdserv.acc($1,$3) < 200) { enotice $1 ChanServ You don't have enough access for that command. | return }
if ($istok($hget(cs. $+ $3,names),$5,32)) {
if (!$eircdserv.set(logged,$eircd.find($5 *,1))) { enotice $1 ChanServ That user must first login. | return }
if (!$eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1)))) { enotice $1 ChanServ That user doesn't have access to $3 $+ . | return }
if ($eircdserv.acc($1,$3) <= $eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1)))) { enotice $1 ChanServ You can not deluser a user that has the same, or higher access tham yourself. | return }
remini $+(",$scriptdir,settings.ini,") $3 $eircdserv.set(logged,$eircd.find($5 *,1))
enotice $1 ChanServ $5 has been successfully deleted from the userlist.
}
elseif ($ini($+(",$scriptdir,settings.ini,"),accounts,$5)) {
if (!$eircdserv.set($3,$5)) { enotice $1 ChanServ That account doesn't have access to $3 $+ . | return }
if ($eircdserv.acc($1,$3) <= $eircdserv.set($3,$5)) { enotice $1 ChanServ You can not deluser an account that has the same, or higher access tham yourself. | return }
remini $+(",$scriptdir,settings.ini,") $3 $5
enotice $1 ChanServ The account $5 has been successfully deleted from the userlist.
}
else { enotice $1 ChanServ That user is not in the channel. | return }
}
elseif ($4 == deleteme) {
if (!$eircdserv.acc($1,$3)) { enotice $1 ChanServ You don't have access to $3 $+ . | return }
remini $+(",$scriptdir,settings.ini,") $3 $eircdserv.set(logged,$1)
enotice $1 ChanServ You have been successfully deleted from the userlist.
}
elseif ($4 == giveowner) {
if ($eircdserv.acc($1,$3) < 500) { enotice $1 ChanServ You don't have enough access for that command. | return }
if ($istok($hget(cs. $+ $3,names),$5,32)) {
if (!$eircdserv.set(logged,$eircd.find($5 *,1))) { enotice $1 ChanServ That user must first login. | return }
if ($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))) == 500) { enotice $1 ChanServ That account is already an owner of the channel. | return }
writeini $+(",$scriptdir,settings.ini,") $3 $eircdserv.set(logged,$eircd.find($5 *,1)) 500
writeini $+(",$scriptdir,settings.ini,") $3 $eircdserv.set(logged,$1) 400
enotice $1 ChanServ $5 is now the channel owner.
}
elseif ($ini($+(",$scriptdir,settings.ini,"),accounts,$5)) {
if ($eircdserv.set($3,$5) == 500) { enotice $1 ChanServ That account is already an owner of the channel. | return }
writeini $+(",$scriptdir,settings.ini,") $3 $5 500
writeini $+(",$scriptdir,settings.ini,") $3 $eircdserv.set(logged,$1) 400
enotice $1 ChanServ The account $5 is now the channel owner.
}
else { enotice $1 ChanServ That user is not in the channel. | return }
}
elseif ($4 == access) || ($4 == a) {
if ($5) {
if (!$istok($hget(cs. $+ $3,names),$5,32)) { enotice $1 ChanServ That user is not in the channel. | return }
enotice $1 ChanServ $5 $iif($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))),$chr(40) $+ $eircdserv.set(logged,$eircd.find($5 *,1)) $+ $chr(41) has access $eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))) in $3 $+ .,$chr(40) $+ $iif($eircdserv.set(logged,$5),$v1,No Account) $+ $chr(41) lacks access to $3 $+ .)
}
else { enotice $1 ChanServ $2 $iif($eircdserv.acc($1,$3),$chr(40) $+ $eircdserv.set(logged,$1) $+ $chr(41) has access $eircdserv.acc($1,$3) in $3 $+ .,$chr(40) $+ $iif($eircdserv.set(logged,$1),$v1,No Account) $+ $chr(41) lacks access to $3 $+ .) }
}
elseif ($4 == myaccess) {
enotice $1 ChanServ Showing all channels with user $+ $eircdserv.set(logged,$1) $+ .
var %i 1
while %i <= $ini($+(",$scriptdir,settings.ini,"),0) {
if (#* !iswm $ini($+(",$scriptdir,settings.ini,"),%i)) { inc %i | continue }
if ($readini($+(",$scriptdir,settings.ini,"),$ini($+(",$scriptdir,settings.ini,"),%i),$eircdserv.set(logged,$1))) { enotice $1 ChanServ $+($chr(91),$ini($+(",$scriptdir,settings.ini,"),%i) $chr(40),$readini($+(",$scriptdir,settings.ini,"),$ini($+(",$scriptdir,settings.ini,"),%i),$eircdserv.set(logged,$1)),$chr(44),$iif($readini($+(",$scriptdir,settings.ini,"),$ini($+(",$scriptdir,settings.ini,"),%i),$eircdserv.set(logged,$1)) >= 200,o,$iif($readini($+(",$scriptdir,settings.ini,"),$ini($+(",$scriptdir,settings.ini,"),%i),$eircdserv.set(logged,$1)) isnum 100-199,v)),$chr(41),$chr(93)) }
inc %i
}
}
elseif ($4 == up) { if ($eircdserv.acc($1,$3) >= 200) { sockwrite -n eircdserv.cs MODE $3 +o $2 } | elseif ($eircdserv.acc($1,$3) isnum 100-199) { sockwrite -n eircdserv.cs MODE $3 +v $2 } }
elseif ($4 == down) { sockwrite -n eircdserv.cs MODE $3 -ov $2 $2 }
elseif ($4 == resync) {
var %i 1
while %i <= $gettok($hget(cs. $+ $3,names),0,32) {
if ($gettok($hget(cs. $+ $3,names),%i,32) == ChanServ) || ($gettok($hget(cs. $+ $3,names),%i,32) == HelpServ) { inc %i | continue }
if ($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($gettok($hget(cs. $+ $3,names),%i,32) *,1))) >= 200) { sockwrite -n eircdserv.cs MODE $3 +o $gettok($hget(cs. $+ $3,names),%i,32) }
elseif ($eircdserv.set($3,$eircdserv.set(logged,$eircd.find($gettok($hget(cs. $+ $3,names),%i,32) *,1))) isnum 100-199) { sockwrite -n eircdserv.cs MODE $3 +v $gettok($hget(cs. $+ $3,names),%i,32) }
else { sockwrite -n eircdserv.cs MODE $3 -ov $gettok($hget(cs. $+ $3,names),%i,32) $gettok($hget(cs. $+ $3,names),%i,32) }
inc %i
}
}
elseif ($4 == upall) {
var %i 1
while %i <= $ini($+(",$scriptdir,settings.ini,"),0) {
if (#* !iswm $ini($+(",$scriptdir,settings.ini,"),%i)) { inc %i | continue }
if ($readini($+(",$scriptdir,settings.ini,"),$ini($+(",$scriptdir,settings.ini,"),%i),$eircdserv.set(logged,$1)) >= 200) { sockwrite -n eircdserv.cs MODE $ini($+(",$scriptdir,settings.ini,"),%i) +o $2 }
elseif ($readini($+(",$scriptdir,settings.ini,"),$ini($+(",$scriptdir,settings.ini,"),%i),$eircdserv.set(logged,$1)) isnum 100-199) { sockwrite -n eircdserv.cs MODE $ini($+(",$scriptdir,settings.ini,"),%i) +v $2 }
inc %i
}
}
elseif ($4 == downall) { var %i 1 | while %i <= $ini($+(",$scriptdir,settings.ini,"),0) { if (#* !iswm $ini($+(",$scriptdir,settings.ini,"),%i)) { inc %i | continue } | sockwrite -n eircdserv.cs MODE $ini($+(",$scriptdir,settings.ini,"),%i) -ov $2 $2 | inc %i } }
elseif ($4 == op) { if ($eircdserv.acc($1,$3) < 200) { enotice $1 ChanServ You don't have enough access for that command. | return } | sockwrite -n eircdserv.cs MODE $3 +o $5 }
elseif ($4 == voice) { if ($eircdserv.acc($1,$3) < 200) { enotice $1 ChanServ You don't have enough access for that command. | return } | sockwrite -n eircdserv.cs MODE $3 +v $5 }
elseif ($4 == deop) { if ($eircdserv.acc($1,$3) < 200) { enotice $1 ChanServ You don't have enough access for that command. | return } | sockwrite -n eircdserv.cs MODE $3 -o $5 }
elseif ($4 == devoice) { if ($eircdserv.acc($1,$3) < 200) { enotice $1 ChanServ You don't have enough access for that command. | return } | sockwrite -n eircdserv.cs MODE $3 -v $5 }
elseif ($4 == k) {
if ($eircdserv.acc($1,$3) < 200) { enotice $1 ChanServ You don't have enough access for that command. | return }
if ($istok(ChanServ HelpServ,$5,32)) { enotice $1 ChanServ You can't use that command on ChanServ or HelpServ | return }
if (!$istok($hget(cs. $+ $3,names),$5,32)) { enotice $1 ChanServ That user is not in the channel. | return }
if ($eircdserv.acc($1,$3) <= $calc(0 + $eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))))) { enotice $1 ChanServ You can't kick someone with the same, or higher access then yourself. | return }
sockwrite -n eircdserv.cs KICK $3 $5 : $+ $6-
}
elseif ($4 == kb) {
if ($eircdserv.acc($1,$3) < 200) { enotice $1 ChanServ You don't have enough access for that command. | return }
if ($istok(ChanServ HelpServ,$5,32)) { enotice $1 ChanServ You can't use that command on ChanServ or HelpServ | return }
if (!$istok($hget(cs. $+ $3,names),$5,32)) { enotice $1 ChanServ That user is not in the channel. | return }
if ($eircdserv.acc($1,$3) <= $calc(0 + $eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))))) { enotice $1 ChanServ You can't kick someone with the same, or higher access then yourself. | return }
sockwrite -n eircdserv.cs KICK $3 $5 : $+ 6-
sockwrite -n eircdserv.cs MODE $3 +b $5
}
elseif ($4 == b) {
if ($eircdserv.acc($1,$3) < 200) { enotice $1 ChanServ You don't have enough access for that command. | return }
if ($istok(ChanServ HelpServ,$5,32)) { enotice $1 ChanServ You can't use that command on ChanServ or HelpServ | return }
if (!$istok($hget(cs. $+ $3,names),$5,32)) { enotice $1 ChanServ That user is not in the channel. | return }
if ($eircdserv.acc($1,$3) <= $calc(0 + $eircdserv.set($3,$eircdserv.set(logged,$eircd.find($5 *,1))))) { enotice $1 ChanServ You can't kick someone with the same, or higher access then yourself. | return }
sockwrite -n eircdserv.cs MODE $3 +b $5
}
elseif ($4 == tb) {
if ($eircdserv.acc($1,$3) < 200) { enotice $1 ChanServ You don't have enough access for that command. | return }
if ($istok(ChanServ HelpServ,$5,32)) { enotice $1 ChanServ You can't use that command on ChanServ or HelpServ | return }
if (!$istok($hget(cs. $+ $3,names),$6,32)) { enotice $1 ChanServ That user is not in the channel. | return }
if ($eircdserv.acc($1,$3) <= $calc(0 + $eircdserv.set($3,$eircdserv.set(logged,$eircd.find($6 *,1))))) { enotice $1 ChanServ You can't kick someone with the same, or higher access then yourself. | return }
if ($5 !isnum 1-) { enotice $1 ChanServ Invalid length. | return }
sockwrite -n eircdserv.cs MODE $3 +b $6
.timerunban. [ $+ [ $3 ] $+ . $+ [ $6 ] ] 1 $5 sockwrite -n eircdserv.cs MODE $3 -b $6
}
elseif ($4 == ub) {
if ($eircdserv.acc($1,$3) < 200) { enotice $1 ChanServ You don't have enough access for that command. | return }
sockwrite -n eircdserv.cs MODE $3 -b $5
.timerunban. [ $+ [ $3 ] $+ . $+ [ $5 ] ] off
}
; CHANNEL
elseif ($4 == open) {
if ($eircdserv.acc($1,$3) < 200) { enotice $1 ChanServ You don't have enough access for that command. | return }
sockwrite -n eircdserv.cs MODE $3 -ilk $right($gettok($hget(channels,$3),2,32),-1)
}
elseif ($4 == users) {
window -l @ [ $+ [ $3 ] ] 1 1 1 1
var %a 1 | while %a <= $ini($+(",$scriptdir,settings.ini,"),$3,0) {
var %b 1 | while %b <= $calc(1 + $line(@ [ $+ [ $3 ] ],0)) {
if (%a == 1) { aline @ [ $+ [ $3 ] ] ~ $+ $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $+ $str(~,$calc(10 - $len($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))))) $+ $ini($+(",$scriptdir,settings.ini,"),$3,%a) | break }
if ($gettok($line(@ [ $+ [ $3 ] ],%b),1,126) < $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))) { iline @ [ $+ [ $3 ] ] %b ~ $+ $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $+ $str(~,$calc(10 - $len($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))))) $+ $ini($+(",$scriptdir,settings.ini,"),$3,%a) | break }
if (%b == $line(@ [ $+ [ $3 ] ],0)) { aline @ [ $+ [ $3 ] ] ~ $+ $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $+ $str(~,$calc(10 - $len($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))))) $+ $ini($+(",$scriptdir,settings.ini,"),$3,%a) | break }
inc %b
}
inc %a
}
enotice $1 ChanServ $3 users from level 1 to 500
enotice $1 ChanServ Access $+ $str($chr(160),4) $+ Account
if ($line(@ [ $+ [ $3 ] ],0) == 0) { enotice $1 ChanServ $chr(160) $+ None }
var %i 1 | while %i <= $line(@ [ $+ [ $3 ] ],0) { enotice $1 ChanServ $replace($line(@ [ $+ [ $3 ] ],%i),~,$chr(160)) | inc %i }
window -c @ [ $+ [ $3 ] ]
}
elseif ($4 == wlist) {
window -l @ [ $+ [ $3 ] ] 1 1 1 1
var %a 1 | while %a <= $ini($+(",$scriptdir,settings.ini,"),$3,0) {
if ($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) != 500) { inc %a | continue }
var %b 1 | while %b <= $calc(1 + $line(@ [ $+ [ $3 ] ],0)) {
if ($line(@ [ $+ [ $3 ] ],0) == 0) { aline @ [ $+ [ $3 ] ] ~ $+ $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $+ $str(~,$calc(10 - $len($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))))) $+ $ini($+(",$scriptdir,settings.ini,"),$3,%a) | break }
if ($gettok($line(@ [ $+ [ $3 ] ],%b),1,126) < $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))) { iline @ [ $+ [ $3 ] ] %b ~ $+ $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $+ $str(~,$calc(10 - $len($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))))) $+ $ini($+(",$scriptdir,settings.ini,"),$3,%a) | break }
if (%b == $line(@ [ $+ [ $3 ] ],0)) { aline @ [ $+ [ $3 ] ] ~ $+ $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $+ $str(~,$calc(10 - $len($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))))) $+ $ini($+(",$scriptdir,settings.ini,"),$3,%a) | break }
inc %b
}
inc %a
}
enotice $1 ChanServ $3 users from level 500 to 500
enotice $1 ChanServ Access $+ $str($chr(160),4) $+ Account
if ($line(@ [ $+ [ $3 ] ],0) == 0) { enotice $1 ChanServ $chr(160) $+ None }
var %i 1 | while %i <= $line(@ [ $+ [ $3 ] ],0) { enotice $1 ChanServ $replace($line(@ [ $+ [ $3 ] ],%i),~,$chr(160)) | inc %i }
window -c @ [ $+ [ $3 ] ]
}
elseif ($4 == clist) {
window -l @ [ $+ [ $3 ] ] 1 1 1 1
var %a 1 | while %a <= $ini($+(",$scriptdir,settings.ini,"),$3,0) {
echo -s $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $iif($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) !isnum 400-499,stop,go)
if ($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) !isnum 400-499) { inc %a | continue }
var %b 1 | while %b <= $calc(1 + $line(@ [ $+ [ $3 ] ],0)) {
if ($line(@ [ $+ [ $3 ] ],0) == 0) { aline @ [ $+ [ $3 ] ] ~ $+ $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $+ $str(~,$calc(10 - $len($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))))) $+ $ini($+(",$scriptdir,settings.ini,"),$3,%a) | break }
if ($gettok($line(@ [ $+ [ $3 ] ],%b),1,126) < $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))) { iline @ [ $+ [ $3 ] ] %b ~ $+ $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $+ $str(~,$calc(10 - $len($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))))) $+ $ini($+(",$scriptdir,settings.ini,"),$3,%a) | break }
if (%b == $line(@ [ $+ [ $3 ] ],0)) { aline @ [ $+ [ $3 ] ] ~ $+ $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $+ $str(~,$calc(10 - $len($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))))) $+ $ini($+(",$scriptdir,settings.ini,"),$3,%a) | break }
inc %b
}
inc %a
}
enotice $1 ChanServ $3 users from level 400 to 499
enotice $1 ChanServ Access $+ $str($chr(160),4) $+ Account
if ($line(@ [ $+ [ $3 ] ],0) == 0) { enotice $1 ChanServ $chr(160) $+ None }
var %i 1 | while %i <= $line(@ [ $+ [ $3 ] ],0) { enotice $1 ChanServ $replace($line(@ [ $+ [ $3 ] ],%i),~,$chr(160)) | inc %i }
window -c @ [ $+ [ $3 ] ]
}
elseif ($4 == mlist) {
window -l @ [ $+ [ $3 ] ] 1 1 1 1
var %a 1 | while %a <= $ini($+(",$scriptdir,settings.ini,"),$3,0) {
if ($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) !isnum 300-399) { inc %a | continue }
var %b 1 | while %b <= $calc(1 + $line(@ [ $+ [ $3 ] ],0)) {
if ($line(@ [ $+ [ $3 ] ],0) == 0) { aline @ [ $+ [ $3 ] ] ~ $+ $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $+ $str(~,$calc(10 - $len($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))))) $+ $ini($+(",$scriptdir,settings.ini,"),$3,%a) | break }
if ($gettok($line(@ [ $+ [ $3 ] ],%b),1,126) < $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))) { iline @ [ $+ [ $3 ] ] %b ~ $+ $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $+ $str(~,$calc(10 - $len($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))))) $+ $ini($+(",$scriptdir,settings.ini,"),$3,%a) | break }
if (%b == $line(@ [ $+ [ $3 ] ],0)) { aline @ [ $+ [ $3 ] ] ~ $+ $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $+ $str(~,$calc(10 - $len($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))))) $+ $ini($+(",$scriptdir,settings.ini,"),$3,%a) | break }
inc %b
}
inc %a
}
enotice $1 ChanServ $3 users from level 300 to 399
enotice $1 ChanServ Access $+ $str($chr(160),4) $+ Account
if ($line(@ [ $+ [ $3 ] ],0) == 0) { enotice $1 ChanServ $chr(160) $+ None }
var %i 1 | while %i <= $line(@ [ $+ [ $3 ] ],0) { enotice $1 ChanServ $replace($line(@ [ $+ [ $3 ] ],%i),~,$chr(160)) | inc %i }
window -c @ [ $+ [ $3 ] ]
}
elseif ($4 == olist) {
window -l @ [ $+ [ $3 ] ] 1 1 1 1
var %a 1 | while %a <= $ini($+(",$scriptdir,settings.ini,"),$3,0) {
if ($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) !isnum 200-299) { inc %a | continue }
var %b 1 | while %b <= $calc(1 + $line(@ [ $+ [ $3 ] ],0)) {
if ($line(@ [ $+ [ $3 ] ],0) == 0) { aline @ [ $+ [ $3 ] ] ~ $+ $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $+ $str(~,$calc(10 - $len($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))))) $+ $ini($+(",$scriptdir,settings.ini,"),$3,%a) | break }
if ($gettok($line(@ [ $+ [ $3 ] ],%b),1,126) < $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))) { iline @ [ $+ [ $3 ] ] %b ~ $+ $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $+ $str(~,$calc(10 - $len($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))))) $+ $ini($+(",$scriptdir,settings.ini,"),$3,%a) | break }
if (%b == $line(@ [ $+ [ $3 ] ],0)) { aline @ [ $+ [ $3 ] ] ~ $+ $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $+ $str(~,$calc(10 - $len($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))))) $+ $ini($+(",$scriptdir,settings.ini,"),$3,%a) | break }
inc %b
}
inc %a
}
enotice $1 ChanServ $3 users from level 200 to 299
enotice $1 ChanServ Access $+ $str($chr(160),4) $+ Account
if ($line(@ [ $+ [ $3 ] ],0) == 0) { enotice $1 ChanServ $chr(160) $+ None }
var %i 1 | while %i <= $line(@ [ $+ [ $3 ] ],0) { enotice $1 ChanServ $replace($line(@ [ $+ [ $3 ] ],%i),~,$chr(160)) | inc %i }
window -c @ [ $+ [ $3 ] ]
}
elseif ($4 == plist) {
window -l @ [ $+ [ $3 ] ] 1 1 1 1
var %a 1 | while %a <= $ini($+(",$scriptdir,settings.ini,"),$3,0) {
if ($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) !isnum 100-199) { inc %a | continue }
var %b 1 | while %b <= $calc(1 + $line(@ [ $+ [ $3 ] ],0)) {
if ($line(@ [ $+ [ $3 ] ],0) == 0) { aline @ [ $+ [ $3 ] ] ~ $+ $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $+ $str(~,$calc(10 - $len($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))))) $+ $ini($+(",$scriptdir,settings.ini,"),$3,%a) | break }
if ($gettok($line(@ [ $+ [ $3 ] ],%b),1,126) < $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))) { iline @ [ $+ [ $3 ] ] %b ~ $+ $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $+ $str(~,$calc(10 - $len($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))))) $+ $ini($+(",$scriptdir,settings.ini,"),$3,%a) | break }
if (%b == $line(@ [ $+ [ $3 ] ],0)) { aline @ [ $+ [ $3 ] ] ~ $+ $readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a)) $+ $str(~,$calc(10 - $len($readini($+(",$scriptdir,settings.ini,"),$3,$ini($+(",$scriptdir,settings.ini,"),$3,%a))))) $+ $ini($+(",$scriptdir,settings.ini,"),$3,%a) | break }
inc %b
}
inc %a
}
enotice $1 ChanServ $3 users from level 100 to 199
enotice $1 ChanServ Access $+ $str($chr(160),4) $+ Account
if ($line(@ [ $+ [ $3 ] ],0) == 0) { enotice $1 ChanServ $chr(160) $+ None }
var %i 1 | while %i <= $line(@ [ $+ [ $3 ] ],0) { enotice $1 ChanServ $replace($line(@ [ $+ [ $3 ] ],%i),~,$chr(160)) | inc %i }
window -c @ [ $+ [ $3 ] ]
}
elseif ($4 == topic) {
if ($eircdserv.acc($1,$3) < 200) { enotice $1 ChanServ You don't have enough access for that command. | return }
if ($hget(cs. $+ $3,topicmask)) {
if ($5) && (!$hget(cs. $+ $3,$5)) { enotice $1 ChanServ You must supply a valid mask name. | return }
elseif ($5) && ($hget(cs. $+ $3,$5)) { hadd cs. [ $+ [ $3 ] ] $5 $iif($6,$6-,$iif($hget(cs. $+ $3,deftopic),$hget(cs. $+ $3,deftopic),$eircdserv.set(other,tmstart) $+ $5 $+ $eircdserv.set(other,tmend))) }
var %i 1, %topic $hget(cs. $+ $3,topicmask) | while %i <= $hget(cs. $+ $3,0).item { if (!$istok(names topic topicmask deftopic modelock,$hget(cs. $+ $3,%i).item,32)) { %topic = $replace(%topic,$eircdserv.set(other,tmstart) $+ $hget(cs. $+ $3,%i).item $+ $eircdserv.set(other,tmend),$hget(cs. $+ $3,%i).data) } | inc %i }
}
else { var %topic $5- }
sockwrite -n eircdserv.cs TOPIC $3 : $+ %topic
hadd cs. [ $+ [ $3 ] ] topic %topic
}
elseif ($4 == topicmask) {
if ($eircdserv.acc($1,$3) < 200) { enotice $1 ChanServ You don't have enough access for that command. | return }
if (!$5) && (!$hget(cs. $+ $3,topicmask)) { enotice $1 ChanServ You must supply a topic mask. | return }
elseif (!$5) && ($hget(cs. $+ $3,topicmask)) { var %i 1 | while %i <= $hget(cs. $+ $3,0).item { if (!$istok(names topic,$hget(cs. $+ $3,%i).item,32)) { hdel cs. [ $+ [ $3 ] ] $hget(cs. $+ $3,%i).item | continue } | inc %i } }
hadd cs. [ $+ [ $3 ] ] topicmask $5-
var %i 1 | while %i <= $hget(cs. $+ $3,0).item { if (!$istok(names topic topicmask deftopic,$hget(cs. $+ $3,%i).item,32)) { hdel cs. [ $+ [ $3 ] ] $hget(cs. $+ $3,%i).item } | inc %i }
var %i 5 | while %i <= $0 { if ($eircdserv.set(other,tmstart) $+ * $+ $eircdserv.set(other,tmend) iswm $ [ $+ [ %i ] ]) { hadd cs. [ $+ [ $3 ] ] $remove($ [ $+ [ %i ] ],$eircdserv.set(other,tmstart),$eircdserv.set(other,tmend)) $iif($hget(cs. $+ $3,deftopic),$hget(cs. $+ $3,deftopic),$ [ $+ [ %i ] ]) } | inc %i }
var %i 1, %topic $hget(cs. $+ $3,topicmask) | while %i <= $hget(cs. $+ $3,0).item { if (!$istok(names topic topicmask deftopic modelock,$hget(cs. $+ $3,%i).item,32)) { %topic = $replace(%topic,$eircdserv.set(other,tmstart) $+ $hget(cs. $+ $3,%i).item $+ $eircdserv.set(other,tmend),$hget(cs. $+ $3,%i).data) } | inc %i }
sockwrite -n eircdserv.cs TOPIC $3 : $+ %topic
hadd cs. [ $+ [ $3 ] ] topic %topic
}
elseif ($4 == deftopic) {
if ($eircdserv.acc($1,$3) < 200) { enotice $1 ChanServ You don't have enough access for that command. | return }
if (!$hget(cs. $+ $3,topicmask)) { enotice $1 ChanServ There is no topic mask. | return }
hadd cs. [ $+ [ $3 ] ] deftopic $5-
var %i 1 | while %i <= $hget(cs. $+ $3,0).item { if (!$istok(names topic topicmask deftopic modelock,$hget(cs. $+ $3,%i).item,32)) && ($remove($hget(cs. $+ $3,%i).data,$eircdserv.set(other,tmstart),$eircdserv.set(other,tmend)) == $hget(cs. $+ $3,%i).item) { hadd cs. [ $+ [ $3 ] ] $v2 $5- } | inc %i }
var %i 1, %topic $hget(cs. $+ $3,topicmask) | while %i <= $hget(cs. $+ $3,0).item { if (!$istok(names topic topicmask deftopic modelock,$hget(cs. $+ $3,%i).item,32)) { %topic = $replace(%topic,$eircdserv.set(other,tmstart) $+ $hget(cs. $+ $3,%i).item $+ $eircdserv.set(other,tmend),$hget(cs. $+ $3,%i).data) } | inc %i }
sockwrite -n eircdserv.cs TOPIC $3 : $+ %topic
hadd cs. [ $+ [ $3 ] ] topic %topic
}
elseif ($4 == mask) { enotice $1 ChanServ $iif($hget(cs. $+ $3,topicmask),Mask: $hget(cs. $+ $3,topicmask),There is no mask for $3 $+ .) }
elseif ($4 == mode) {
if ($eircdserv.acc($1,$3) < 200) { enotice $1 ChanServ You don't have enough access for that command. | return }
if (!$5) { enotice $1 ChanServ You must supply a mode. | return }
sockwrite -n eircdserv.cs MODE $3 $5-
}
elseif ($4 == modelock) {
if ($eircdserv.acc($1,$3) < 400) { enotice $1 ChanServ You don't have enough access for that command. | return }
if (!$5) && ($hget(cs. $+ $3,modelock)) { enotice $1 ChanServ Modelock unset. | hdel cs. [ $+ [ $3 ] ] modelock | return }
var %a 1,%t $5,%m+ +,%m- -,%+- $left($5,1)
while %a <= $len(%t) { if ($istok(+ -,$mid(%t,%a,1),32)) %+- = $mid(%t,%a,1) | elseif ($istokcs(t m s i k l O x N n H h U u R r C c A S o v b,$mid(%t,%a,1),32)) { %m [ $+ [ %+- ] ] = %m [ $+ [ %+- ] ] $+ $mid(%t,%a,1) | %t = $remove(%t,$mid(%t,%a,1)) | dec %a } | inc %a }
sockwrite -n eircdserv.cs MODE $3 %m+ $+ %m-
hadd cs. [ $+ [ $3 ] ] modelock %m+ %m-
enotice $1 ChanServ Modelock set to: %m+ $+ %m-
}
elseif ($4 == inviteme) {
if (#* iswm $5) && ($ini($+(",$scriptdir,settings.ini,"),$5)) { if ($eircdserv.set($5,$eircdserv.set(logged,$1)) < 1) { enotice $1 ChanServ You don't have enough access for that command. | return } | elseif ($istok($hget(cs. $+ $5,names),$2,32)) { enotice $1 ChanServ You are already in that channel. | return } | sockwrite -n eircdserv.cs INVITE $2 $5 }
elseif (#* iswm $3) && ($ini($+(",$scriptdir,settings.ini,"),$3)) { if ($eircdserv.acc($1,$3) < 1) { enotice $1 ChanServ You don't have enough access for that command. | return } | elseif ($istok($hget(cs. $+ $5,names),$2,32)) { enotice $1 ChanServ You are already in that channel. | return } | sockwrite -n eircdserv.cs INVITE $2 $3 }
else { enotice $1 ChanServ That is an invalid channel. }
}
; OPER
elseif ($4 == say) {
if (!$eircd.ircop($1)) { enotice $1 ChanServ You must be an Oper to use that command. | return }
if (#* !iswm $3) && (#* !iswm $5) { enotice $1 ChanServ Invalid channel. | return }
elseif (#* iswm $3) && (#* !iswm $5) { emsg $3 ChanServ $5- }
else { emsg $5 ChanServ $6- }
}
elseif ($4 == emote) {
if (!$eircd.ircop($1)) { enotice $1 ChanServ You must be an Oper to use that command. | return }
if (#* !iswm $3) && (#* !iswm $5) { enotice $1 ChanServ Invalid channel. | return }
elseif (#* iswm $3) && (#* !iswm $5) { emsg $3 ChanServ ACTION $5- $+ }
else { emsg $5 ChanServ ACTION $6- $+ }
}
elseif ($4 == move) {
if (!$eircd.ircop($1)) { enotice $1 ChanServ You must be an Oper to use that command. | return }
if (!$ini($+(",$scriptdir,settings.ini,"),$5)) { enotice $1 ChanServ The channel is not registered. | return }
if (#* !iswm $6) { enotice $1 ChanServ The channel to move to is invalid. | return }
if ($ini($+(",$scriptdir,settings.ini,"),$6)) { enotice $1 ChanServ The channel you are trying to move to is already registered. | return }
var %i 1 | while %i <= $ini($+(",$scriptdir,settings.ini,"),$5,0) { writeini $+(",$scriptdir,settings.ini,") $6 $ini($+(",$scriptdir,settings.ini,"),$5,%i) $readini($+(",$scriptdir,settings.ini,"),$5,$ini($+(",$scriptdir,settings.ini,"),$5,%i)) | inc %i }
remini $+(",$scriptdir,settings.ini,") $5
var %i 1 | while %i <= $hget(cs. $+ $5,0).item { hadd -m cs. [ $+ [ $6 ] ] $hget(cs. $+ $5,%i).item $hget(cs. $+ $5,%i).data | inc %i }
hfree cs. [ $+ [ $5 ] ]
sockwrite -n eircdserv.cs PART $5 :Moved to $6 by $2 requested by $iif($7,$7,unknown) $+ .
sockwrite -n eircdserv.cs JOIN $6
sockwrite -n eircdserv.cs MODE $6
sockwrite -n eircdserv.cs MODE $6 +o ChanServ
}
elseif ($4 == opchan) {
if (!$eircd.ircop($1)) { enotice $1 ChanServ You must be an Oper to use that command. | return }
if (#* !iswm $3) && (#* !iswm $5) { enotice $1 ChanServ Invalid channel. | return }
elseif (#* iswm $3) && (!$ini($+(",$scriptdir,settings.ini,"),$3)) && (#* !iswm $5) { enotice $1 ChanServ Invalid channel. | return }
elseif (#* iswm $3) && ($ini($+(",$scriptdir,settings.ini,"),$3)) && (#* !iswm $5) { sockwrite -n eircdserv.cs MODE $3 +o ChanServ }
elseif (#* !iswm $3) && (#* iswm $5) && (!$ini($+(",$scriptdir,settings.ini,"),$5)) { enotice $1 ChanServ Invalid channel. | return }
elseif (#* !iswm $3) && (#* iswm $5) && ($ini($+(",$scriptdir,settings.ini,"),$5)) { sockwrite -n eircdserv.cs MODE $5 +o ChanServ }
else { sockwrite -n eircdserv.cs MODE $5 +o ChanServ }
}
elseif ($4 == reg) {
if (!$eircd.ircop($1)) { enotice $1 ChanServ You must be an Oper to use that command. | return }
if (#* !iswm $5) { enotice $1 ChanServ Invalid channel. | return }
if ($ini($+(",$scriptdir,settings.ini,"),$5)) { enotice $1 ChanServ That channel is already registered. | return }
if (!$6) { enotice $1 ChanServ You must supply the person to register the channel to. | return }
if (!$eircdserv.set(logged,$eircd.find($6 *,1))) { enotice $1 ChanServ $6 must login first. | return }
if ($eircdserv.set(disallow,$5)) { enotice $1 ChanServ $6 is in the disallow list. | return }
writeini $+(",$scriptdir,settings.ini,") $5 $eircdserv.set(logged,$eircd.find($6 *,1)) 500
sockwrite -n eircdserv.cs JOIN $5
sockwrite -n eircdserv.cs MODE $5
sockwrite -n eircdserv.cs MODE $5 +o ChanServ
enotice $1 ChanServ $5 successfully registered to $6 $+ .
}
elseif ($4 == unreg) {
if (!$eircd.ircop($1)) { enotice $1 ChanServ You must be an Oper to use that command. | return }
if (#* !iswm $5) || ($5 == $eircdserv.set(other,mainchan)) { enotice $1 ChanServ Invalid channel. | return }
if (!$ini($+(",$scriptdir,settings.ini,"),$5)) { enotice $1 ChanServ That channel isn't registered. | return }
remini $+(",$scriptdir,settings.ini,") $5
hfree cs. [ $+ [ $5 ] ]
sockwrite -n eircdserv.cs PART $5 :Unregistered by $2 $+ , requested by $iif($6,$6,unknown) $+ .
enotice $1 ChanServ $5 successfully unregistered.
}
elseif ($4 == disallow) {
if (!$eircd.ircop($1)) { enotice $1 ChanServ You must be an Oper to use that command. | return }
if (#* !iswm $5) { enotice $1 ChanServ Invalid channel. | return }
if ($eircdserv.set(disallow,$5)) { enotice $1 ChanServ $5 is already in the disallow list. | return }
writeini $+(",$scriptdir,settings.ini,") disallow $5 .
enotice $1 ChanServ $5 has been added to the disallow list.
}
elseif ($4 == allow) {
if (!$eircd.ircop($1)) { enotice $1 ChanServ You must be an Oper to use that command. | return }
if (#* !iswm $5) { enotice $1 ChanServ Invalid channel. | return }
if (!$eircdserv.set(disallow,$5)) { enotice $1 ChanServ $5 is not on the disallow list. | return }
remini $+(",$scriptdir,settings.ini,") disallow $5
enotice $1 ChanServ $5 has been removed from the disallow list.
}
elseif ($4 == search) {
if (!$eircd.ircop($1)) { enotice $1 ChanServ You must be an Oper to use that command. | return }
if (!$5) { enotice $1 ChanServ Invalid search. | return }
var %i 1, %results
while %i <= $hget(0) {
if (cs. [ $+ [ $5 ] ] iswm $hget(%i)) { %results = %results $right($hget(%i),-3) }
inc %i
}
enotice $1 ChanServ Search results for $5 $+ : $iif(%results,%results,None)
}
elseif ($4 == addowner) {
if (!$eircd.ircop($1)) { enotice $1 ChanServ You must be an Oper to use that command. | return }
if (#* !iswm $5) { enotice $1 ChanServ Invalid channel. | return }
if (!$ini($+(",$scriptdir,settings.ini,"),$5)) { enotice $1 ChanServ That channel isn't registered. | return }
if ($istok($hget(cs. $+ $5,names),$6,32)) {
if (!$eircdserv.set(logged,$eircd.find($6 *,1))) { enotice $1 ChanServ That user must first login. | return }
if ($eircdserv.set($5,$eircdserv.set(logged,$eircd.find($6 *,1))) == 500) { enotice $1 ChanServ That user is already an owner of the channel. | return }
writeini $+(",$scriptdir,settings.ini,") $5 $eircdserv.set(logged,$eircd.find($6 *,1)) 500
enotice $1 ChanServ $6 has been successfully added as an owner.
}
elseif ($ini($+(",$scriptdir,settings.ini,"),accounts,$6)) {
if ($eircdserv.set($5,$6) == 500) { enotice $1 ChanServ That user is already an owner of the channel. | return }
writeini $+(",$scriptdir,settings.ini,") $5 $6 500
enotice $1 ChanServ The accont $6 has been successfully added as an owner.
}
else { enotice $1 ChanServ That user is not in the channel. | return }
}
elseif ($4 == delowner) {
if (!$eircd.ircop($1)) { enotice $1 ChanServ You must be an Oper to use that command. | return }
if (#* !iswm $5) { enotice $1 ChanServ Invalid channel. | return }
if (!$ini($+(",$scriptdir,settings.ini,"),$5)) { enotice $1 ChanServ That channel isn't registered. | return }
if ($istok($hget(cs. $+ $5,names),$6,32)) {
if (!$eircdserv.set(logged,$eircd.find($6 *,1))) { enotice $1 ChanServ That user must first login. | return }
if (!$eircdserv.set($5,$eircdserv.set(logged,$eircd.find($6 *,1)))) { enotice $1 ChanServ That user doesn't have access to $5 $+ . | return }
if ($eircdserv.set($5,$eircdserv.set(logged,$eircd.find($6 *,1))) != 500) { enotice $1 ChanServ That user isn't an owner. | return }
remini $+(",$scriptdir,settings.ini,") $5 $eircdserv.set(logged,$eircd.find($6 *,1))
enotice $1 ChanServ $6 has been successfully deleted from the userlist.
}
elseif ($ini($+(",$scriptdir,settings.ini,"),accounts,$6)) {
if (!$eircdserv.set($5,$6)) { enotice $1 ChanServ That account doesn't have access to $5 $+ . | return }
if ($eircdserv.set($5,$6) != 500) { enotice $1 ChanServ That account isn't an owner. | return }
remini $+(",$scriptdir,settings.ini,") $5 $6
enotice $1 ChanServ The account $6 has been successfully deleted from the userlist.
}
else { enotice $1 ChanServ That user is not in the channel. | return }
}
;Other
elseif ($4 == ping) { if (#* iswm $3) { emsg $3 ChanServ $+ $2 $+ : Pong! } | else { enotice $1 ChanServ Pong! } }
elseif ($4 == roll) {
if (!$5) { enotice $1 ChanServ Insufficient parameters. | return }
if (*d* iswm $5) { var %dice $iif($gettok($5,1,100) > 1000,1000,$gettok($5,1,100)) | if (*+* iswm $gettok($5,2,100)) { var %sides $gettok($gettok($5,2,100),1,43) | var %add $gettok($gettok($5,2,100),2,43) } | else { var %sides $gettok($5,2,100) | var %add 0 } }
else { if (*+* iswm $5) { var %dice 1 | var %sides $gettok($5,1,43) | var %add $gettok($5,2,43) } | elseif ($5 isnum) { var %dice 1 | var %sides $5 | var %add 0 } | else { if (#* iswm $3) { emsg $3 ChanServ Invalid roll. | return } | else { enotice $1 ChanServ Invalid roll. | return } } }
var %i 1, %total 0 | while %i <= %dice { %total = $calc(%total + $r(1,%sides) + %add) | inc %i }
if (#* iswm $3) { emsg $3 ChanServ The total value is %total $+ . } | else { enotice $1 ChanServ The total valie is %total $+ . }
}
elseif ($4 == netinfo) {
enotice $1 ChanServ Network Information:
enotice $1 ChanServ Total Users: $str($chr(160),7) $calc($hget(users,0).item + $hget(ircops,0).item)
enotice $1 ChanServ IRC Operators: $str($chr(160),5) $hget(ircops,0).item
enotice $1 ChanServ Total Channels: $str($chr(160),4) $hget(channels,0).item
var %i 1, %regged 0 | while %i <= $ini($+(",$scriptdir,settings.ini,"),0) { if (#* iswm $ini($+(",$scriptdir,settings.ini,"),%i)) { inc %regged } | inc %i }
enotice $1 ChanServ Registered Channels: %regged
var %i 1, %bans 0 | while %i <= $hget(bans,0).item { inc %bans $gettok($hget(bans,%i).item,0,32) | inc %i }
enotice $1 ChanServ Total Ban Count: $str($chr(160),3) %bans
enotice $1 ChanServ Total User Count: $str($chr(160),2) $hget(eircd,users)
enotice $1 ChanServ Services Uptime: $str($chr(160),3) $duration($calc($ctime - $eircdserv.set(other,started)))
}
elseif ($4 == info) {
if (!$ini($+(",$scriptdir,settings.ini,"),$3)) { enotice $1 ChanServ That channel is not registered. | return }
enotice $1 ChanServ $+ $3 information:
enotice $1 ChanServ Modelock: $str($chr(160),4) $iif($hget(cs. $+ $3,modelock),$hget(cs. $+ $3,modelock),None)
enotice $1 ChanServ Default Topic: $iif($hget(cs. $+ $3,deftopic),$hget(cs. $+ $3,deftopic),None)
enotice $1 ChanServ Topic Mask: $str($chr(160),2) $iif($hget(cs. $+ $3,topicmask),$hget(cs. $+ $3,topicmask),None)
var %i 1, %names | while %i <= $hget(cs. $+ $3,0).item { if (!$istok(names topic topicmask deftopic,$hget(cs. $+ $3,%i).item,32)) { %names = %names $+ $iif(%names,$chr(44)) $remove($hget(cs. $+ $3,%i).item,$eircdserv.set(other,tmstart),$eircdserv.set(other,tmend)) } | inc %i }
enotice $1 ChanServ Mask Names: $str($chr(160),2) $iif(%names,%names,None)
var %i 1, %owner, %coowners 0, %masters 0, %ops 0, %peons 0, %users 0 | while %i <= $ini($+(",$scriptdir,settings.ini,"),$3,0) { if ($eircdserv.set($3,$ini($+(",$scriptdir,settings.ini,"),$3,%i)) == 500) { %owner = %owner $+ $iif(%owner,$chr(44)) $ini($+(",$scriptdir,settings.ini,"),$3,%i) } | elseif ($eircdserv.set($3,$ini($+(",$scriptdir,settings.ini,"),$3,%i)) isnum 400-499) { inc %coowners } | elseif ($eircdserv.set($3,$ini($+(",$scriptdir,settings.ini,"),$3,%i)) isnum 300-399) { inc %masters } | elseif ($eircdserv.set($3,$ini($+(",$scriptdir,settings.ini,"),$3,%i)) isnum 200-299) { inc %ops } | elseif ($eircdserv.set($3,$ini($+(",$scriptdir,settings.ini,"),$3,%i)) isnum 100-199) { inc %peons } | inc %users | inc %i }
enotice $1 ChanServ Owners: $str($chr(160),6) $iif(%owner,%owner,None)
enotice $1 ChanServ Co-Owners: $str($chr(160),3) %coowners
enotice $1 ChanServ Masters: $str($chr(160),5) %masters
enotice $1 ChanServ Ops: $str($chr(160),9) %ops
enotice $1 ChanServ Peons: $str($chr(160),7) %peons
enotice $1 ChanServ Users: $str($chr(160),7) %users
}
else { enotice $1 ChanServ That is an invalid command. }
}
alias eircdserv.hs {
eircdserv.info own $1-2 HelpServ / $+ $lower($3) $4-
if ($3 == hnext) {
if (!$hget(hs.helpers,$2)) { enotice $1 HelpServ You are not a helper. | return }
if ($hget(hs.helpers,$2) != .) { enotice $1 HelpServ You are already helping $hget(hs.helpers,$2) $+ . | return }
if (!$hget(hs.help,$hget(hs.help,0).item).item) { enotice $1 HelpServ There is noone to be helped. | return }
hadd hs.helpers $2 $hget(hs.help,$hget(hs.help,0).item).item
sockwrite -n eircdserv.hs MODE $eircdserv.set(other,mainchan) +v $hget(hs.help,$hget(hs.help,0).item).item
emsg $eircd.find($hget(hs.help,$hget(hs.help,0).item).item *,1) HelpServ You have been assigned $2 as your helper.
enotice $1 HelpServ $hget(hs.help,$hget(hs.help,0).item).item specified the description: $hget(hs.help,$hget(hs.help,0).item).data
hdel hs.help $hget(hs.help,$hget(hs.help,0).item).item
}
elseif ($3 == hdone) {
if (!$hget(hs.helpers,$2)) { enotice $1 HelpServ You are not a helper. | return }
if ($hget(hs.helpers,$2) == .) { enotice $1 HelpServ You arn't helping anyone. | return }
sockwrite -n eircdserv.hs MODE $eircdserv.set(other,mainchan) -v $hget(hs.helpers,$2)
emsg $eircd.find($hget(hs.helpers,$2) *,1) HelpServ $2 has finished helping you. Please /part $eircdserv.set(other,mainchan) within $eircdserv.set(other,hskick) seconds to avoid being kicked.
.timerhs. [ $+ [ $hget(hs.helpers,$2) ] ] 1 $eircdserv.set(other,hskick) sockwrite -n eircdserv.hs KICK $eircdserv.set(other,mainchan) $hget(hs.helpers,$2) Did not /part $eircdserv.set(other,mainchan) within $eircdserv.set(other,hskick) seconds.
hadd hs.helpers $2 .
}
elseif ($3 == hdesc) {
if ($hget(hs.helpers,$2)) { enotice $1 HelpServ Helpers can not use that command. | return }
if (!$hget(hs.help,$2)) { enotice $1 HelpServ You are not in the queue to be helped. | return }
hadd hs.help $2 $4-
emsg $1 HelpServ Your description has been saved.
}
}
alias eircdserv.cs.account { if ($eircdserv.set(logged,$2)) { eraw $1 330 $3 $eircdserv.set(logged,$2) :is logged in as } }