aIRC — File Browser
aIRCv0.8.69 / aIRCv0.8.69 / script / partyline2.mrc
partyline2.mrc — 20.87 KB — Download this file
;/**********************************************************************
; *
; * aIRC
; * Partyline (commands)
; *
; **********************************************************************/
;;
;
; -( ASSOC )-
;
;;
;_
; assoc
; assoc
;;
;
; -( CHANINFO )-
;
;;
; chaninfo +m|m
; chaninfo <channel>
alias chaninfo { _useredit.echocode chaninfo $1 }
alias _cmd.chaninfo {
if ($1 != $null) {
if ($_not($_ischan($2))) { tokenize 32 $1 %~plparse.cchan }
if ($_not($_ismaster($1,$2,mn))) { return 999 chaninfo }
}
elseif ($_not($_ischan($2))) { tokenize 32 $2 $chan }
if ($_not($_ischan($2))) { return 531 }
var %win1 = @__chaninfotmp,%win2 = @__chaninfo,%file = $_tmpfile
_openwins %win1 %win2
clear %win1
aline %win1 Settings for channel $2
aline %win1 Protect modes (chanmode): $iif($_rchini(chanmode,$2) != $null,$_rchini(chanmode,$2),None)
; aline %win1 Idle Kick after (idle-kick): $iif($_rchini(idle-kick,$2) != $null,$_rchini(idle-kick,$2),DONT!)
if ($1 == $null) || ($_ismaster($1,0,n)) {
; if ($_rchini(need-op,$2) != $null) {
; aline %win1 To regain op's (need-op):
; aline %win1 $ifmatch
; }
; if ($_rchini(need-invite,$2) != $null) {
; aline %win1 To get invite (need-invite):
; aline %win1 $ifmatch
; }
; if ($_rchini(need-key,$2) != $null) {
; aline %win1 To get key (need-key):
; aline %win1 $ifmatch
; }
; if ($_rchini(need-unban,$2) != $null) {
; aline %win1 If Im banned (need-unban):
; aline %win1 $ifmatch
; }
; if ($_rchini(need-limit,$2) != $null) {
; aline %win1 When channel full (need-limit):
; aline %win1 $ifmatch
; }
}
if ($1 == $null) || ($_ismaster($1,$2,mn)) {
%chaninfouser = $2
aline %win1 Other modes:
aline %win1 % $+ {cols=4/70}
var %i = 1,%t
while ($gettok($_partyline.chansetflags,%i,32) != $null) {
%t = $ifmatch
aline %win1 $iif($_rchini(%t,$2),+,-) $+ %t
inc %i
}
aline %win1 % $+ {end}
unset %chaninfouser
}
_remove %file
_eggtext.parse $1 1 %win1 %file
loadbuf %win2 $"(%file)
.timer -o 1 0 _cmdlog $iif($1,$1,$me) chaninfo $2
return 222 %win2 %win1 $+ , $+ %win2
}
;;
;
; -( CHANNELS )-
;
;;
;
; +ban +o|o
; +ban <hostmask> [channel] [%bantime<XdXhXm>] [reason]
alias +ban { _useredit.echocode +ban $1- }
alias _cmd.+ban {
if ($1 != $null) {
if ($_ischan($3)) { var %~flags = $_nickflags($1,$3) }
else { var %~flags = $_nickflags($1) }
}
if ($1 != $null) && (o !isincs %~flags) && (m !isincs %~flags) && (n !isincs %~flags) { return 999 +ban }
var %~handle = $1,%~hostmask = $2,%~chan = global,%~bantime = 0,%~sticky = 0
if (%~handle == $null) { %~handle = $me }
tokenize 32 $3-
if (%~hostmask == $null) { return 524 }
%~hostmask = $_fixmask(%~hostmask)
if ($_not($_ismask(%~hostmask))) { return 470 }
if ($_ischan($1)) {
%~chan = $1
tokenize 32 $2-
}
var %~var = % $+ bantime
if ($left($1,8) == %~var) {
if ($remove($1,%~var) isnum) && ($remove($1,%~var) > 0) { %~bantime = $remove($1,%~var) }
else { %~bantime = $_dhm2secs($remove($1,%~var)) }
tokenize 32 $2-
}
if ($left($1-,1) == *) {
%~sticky = 1
tokenize 32 $right($1-,-1)
}
tokenize 32 $iif($1- != $null,$1-,requested)
; %~handle
; %~flags
; %~hostmask
; %~chan
; %~bantime
; $1- = reason
if (%~hostmask iswm %.myaddress) {
.timer -o 1 0 _cmdlog $iif($1,$1,$me) attemped +ban %~hostmask
return 525 %~hostmask
}
var %~line = %~chan %~hostmask %~handle $ctime %~bantime 0 %~sticky $1-
__cmd.+ban.setban %~line
_cmdlog %~handle ( $+ $iif(%~chan == global,GLOBAL,%~chan) $+ ) +ban %~hostmask $iif(%~chan != global,%~chan) ( $+ $1- $+ ) $iif(%~sticky,$_nospaces($chr(40),sticky,$chr(41)))
if ($1- != $null) { _recent.add banreason 20 $iif($_ischan(%~chan),$replace($1-,%~chan,<CHAN>) },$1-) }
return 213 %~line
}
; __cmd.+ban.setban channel hostmask handle $ctime bantime duration sticky reason
alias __cmd.+ban.setban {
var %~file = $_baninifile,%~index = $1 $2,%~line,%last = 0,%fl
%fl = $read -ns" $+ %~index $+ " %~file
if ($_not($readn)) { hadd _aircinternalbanlist $calc($hget(_aircinternalbanlist,0).item + 1) %~index }
if ($gettok(%fl,5,32)) { %last = $ifmatch }
%~line = $1 $2 $3 $ctime $5 %last $7 $8-
write -s" $+ %~index $+ " " $+ %~file $+ " %~line
if ($_connected) {
if ($5 > 0) { .timer_-ban $+ $1 $+ , $+ $2 1 $5 $iif($show,-ban,.-ban) $2 $iif($_ischan($1),$1) }
else { .timer_-ban $+ $1 $+ , $+ $2 off }
if ($1 == global) {
var %i = $chan(0),%chan
while (%i) {
%chan = $chan(%i)
if ($me isop %chan) { _addbaninchanbutcheckdynamic $iif($_rchini(dynamicbans,%chan),1,0) %chan $2 0 $8- }
dec %i
}
}
elseif ($_ischan($1)) && ($me isop $1) { _addbaninchanbutcheckdynamic $iif($_rchini(dynamicbans,$1),1,0) $1 $2 0 $8- }
}
}
;_
; +exempt +o|o
; +exempt <hostmask> [channel] [%exempttime<XdXhXm>] [comment]
;_
; +invite +o|o
; +invite <hostmask> [channel] [%invitetime<XdXhXm>] [comment]
; +chan +n
; +chan <channel>
alias +chan { _useredit.echocode +chan $1- }
alias _cmd.+chan {
if ($1 != $null) && ($_not($_ismaster($1,0,n))) { return 999 +chan }
if ($_not($_ischan($2))) { return 522 }
if ($readini -n " $+ $_chaninifile $+ " $2 chan) { return 523 }
var %i = 1,%t
_wchini $2 chan $2
while ($gettok($_partyline.chansetflags,%i,32) != $null) {
%t = $ifmatch
_wchini $2 %t $_getsetup(chan,%t)
inc %i
}
_cmdlog $iif($1,$1,$me) +chan $2
return 225 $2
}
; +chrec +m|m
; +chrec <User> <channel>
alias +chrec { _useredit.echocode +chrec $1- }
alias _cmd.+chrec {
if ($2 != $null) && ($3 == $null) { tokenize 32 $1 $2 $_ruini($2,console-chan) }
if ($1 != $null) && ($_not($_ismaster($1,$3,mn))) { return 999 +chrec }
if ($2 == $null) || ($_not($_ischan($3))) { return 511 }
if ($_validateuser(4,$2,$null)) { return $ifmatch $2 }
if ($_partyline.chlevels($1,$2,$3)) { return 998 }
if ($istok($_ruini($2,channels),$3,32)) { return 512 $2 $3 }
_wuini $2 channels $addtok($_ruini($2,channels),$3,32)
_cmdlog $iif($1,$1,$me) +chrec $2 $3
return 210 $2 $3
}
; -ban +o|o
; -ban <hostmask OR number> [channel]
alias -ban { _useredit.echocode -ban $1- }
alias _cmd.-ban {
var %chan,%dl,%line,%hostmask,%lc,%index
if ($_ischan($3)) { %chan = $3 }
if (%chan == $null) {
if (%~plparse.cchan != $null) { %chan = $ifmatch }
elseif ($1 == $null) { %chan = $chan }
}
if ($1 != $null) && ($_not($_ismaster($1,%chan,mno))) { return 999 -ban }
if ($2 == $null) || (($_not($_ischan(%chan))) && ($1 != $null)) { return 532 }
__cmd.bans.loadbans %chan
%dl = $__cmd.bans.getban($2)
if (%dl == $null) {
close -@ @__loadbans
return 535 %chan $2
}
%line = $line(@__loadbans,%dl)
%hostmask = $gettok(%line,2,32)
%lc = $gettok(%line,1,32)
%index = %lc %hostmask
close -@ @__loadbans
if ($gettok(%line,5-,32) != $null) {
if (%lc == global) && ($1 != $null) && ($_not($_ismaster($1,0,mno))) { }
else {
write -ds" $+ %index $+ " " $+ $_baninifile $+ "
if ($hfind(_aircinternalbanlist,%index,1).data) { hdel _aircinternalbanlist $ifmatch }
}
}
__cmd.-ban %hostmask $iif(%lc != global,%lc)
if (%lc == global) {
.timer -o 1 0 _cmdlog $iif($1,$1,$me) -ban %hostmask
return 217 %hostmask
}
.timer -o 1 0 _cmdlog $iif($1,$1,$me) ( $+ %lc $+ ) -ban %hostmask $iif($_ischanban(%hostmask,%lc),(on channel))
return 216 %hostmask %lc
}
; /__cmd.-ban <hostmask> [channel]
alias __cmd.-ban {
var %hostmask = $1,%chan = $2,%i = $chan(0),%banumber,%banner
if (%chan != $null) {
var %banumber = $_ischanban(%hostmask,%chan),%banner = $gettok($ibl(%chan,%banumber).by,1,33)
if ($me isop %chan) && (%banumber) && ((%banner == $me) || (%banner == $null)) { ban -r %chan %hostmask }
.timer_-ban $+ %chan $+ , $+ %hostmask off
}
else {
.timer_-ban $+ global $+ , $+ %hostmask off
while (%i) {
var %chan = $chan(%i),%banumber = $_ischanban(%hostmask,%chan),%banner = $gettok($ibl(%chan,%banumber).by,1,33)
if ($me isop %chan) && (%banumber) && ((%banner == $me) || (%banner == $null)) { ban -r %chan %hostmask }
dec %i
}
}
}
;_
; -exempt +o|o
; -exempt <hostmask OR number>
;_
; -invite +o|o
; -invite <hostmask OR number>
; -chan +n
; -chan <channel>
alias -chan { _useredit.echocode -chan $1- }
alias _cmd.-chan {
if ($1 != $null) && ($_not($_ismaster($1,0,n))) { return 999 -chan }
if ($_not($_ischan($2))) { return 526 }
if ($readini -n " $+ $_chaninifile $+ " $2 chan == $null) { return 527 }
_removechannel $2
if ($_connected) && ($me ison $2) { part $2 }
.timer -o 1 0 _cmdlog $iif($1,$1,$me) -chan $2
return 226 $2
}
; -chrec +m|m
; -chrec <handle> <channel>
alias -chrec { _useredit.echocode -chrec $1- }
alias _cmd.-chrec {
if ($2 != $null) && ($3 == $null) { tokenize 32 $1 $2 $_ruini($2,console-chan) }
if ($1 != $null) && ($_not($_ismaster($1,$3,mn))) { return 999 -chrec }
if ($2 == $null) || ($_not($_ischan($3))) { return 513 }
if ($_validateuser(4,$2,$null)) { return $ifmatch $2 }
if ($_partyline.chlevels($1,$2,$3)) { return 998 }
if ($istok($_ruini($2,channels),$3,32) == $false) { return 514 $2 $3 }
_removechrec $2 $3
_cmdlog $iif($1,$1,$me) -chrec $2 $3
return 211 $2 $3
}
; bans +o|o
; bans [[channel] wildcard]
; bans all
alias bans { _useredit.echocode bans $1- }
alias _cmd.bans {
var %handle = $iif($1,$1,$me),%chan,%wc,%incb = 1,%all = 0,%parms = $2-
_ban.chexpire *
if ($2 == all) {
%all = 1
%wc = *
}
else {
if ($_ischan($2)) {
%chan = $2
tokenize 32 $1 $3-
}
%wc = $2
}
if (%chan == $null) {
if (%~plparse.cchan != $null) { %chan = $ifmatch }
elseif ($1 == $null) { %chan = $chan }
}
if ($1 != $null) && ($_not($_ismaster($1,%chan,mno))) { return 999 bans }
if (%chan == $null) { return 528 }
if (%wc == $null) {
%wc = *
%incb = 0
}
__cmd.bans.loadbans %chan
close -@ @__bans
window -h @__bans
if (%all) { aline @__bans Global bans: (! = not active on %chan $+ ) }
else { aline @__bans Global bans: }
var %i = 1,%n = $line(@__loadbans,0),%l,%z
while (%i <= %n) {
%l = $line(@__loadbans,%i)
if ($gettok(%l,1,32) != global) && ($_not(%z)) {
%z = 1
if (%all) { aline @__bans Channel bans for %chan $+ : (! = not active, * = not placed by bot) }
else { aline @__bans Channel bans for %chan $+ : (* = not placed by bot) }
}
if (%wc iswm $gettok(%l,2,32)) {
if (%incb) || ($_ischanban($gettok(%l,2,32),%chan)) { __cmd.bans.showbans %i %chan %l }
}
inc %i
}
if ($_not(%all)) && ($_not(%incb)) { aline @__bans Use '.bans all' to see the total list. }
_cmdlog $iif($1,$1,$me) bans %parms
return 222 @__bans @__bans,@__loadbans
}
alias __cmd.bans.showbans {
if ($7- == $null) {
var %dur = $abs($calc($ctime - $6)),%1 = 00,%2 = 00
%1 = $int($calc(%dur / 60))
%2 = $calc(%dur - ($int($calc(%dur / 60)) * 60))
if (%1 < 10) { %1 = 0 $+ %1 }
if (%2 < 10) { %2 = 0 $+ %2 }
aline @__bans * [ $+ $_filleft(3, ,$1) $+ ] $4 ( $+ $5 $+ !*@* $+ ) (active %1 $+ : $+ %2 $+ )
}
else {
if ($_ischanban($4,$2)) { var %pref = }
else { var %pref = ! }
var %exp = (perm)
if ($7) { %exp = (expires at $asctime($calc($6 + $7),HH:nn) $+ ) }
var %creatn = $abs($calc($ctime - $6)),%creat
if (%creatn > 86400) {
%creatn = $round($calc(%creatn / 86400),0)
%creat = Created $_nsingoplur(%creatn,day,days) ago
}
else { %creat = Created $asctime($6,HH:nn) }
aline @__bans %pref $+ [ $+ $_filleft(3, ,$1) $+ ] $4 %exp $iif($9,(sticky))
aline @__bans $5 $+ : $10-
aline @__bans %creat
}
}
alias __cmd.bans.loadbans {
var %file,%i = 1,%n,%l,%t,%index,%s,%banmask,%banner,%date,%ultrabreak,%win = @__loadbans
_openwins %win
%file = $_baninifile
if ($isfile(%file)) {
filter -fw $"(%file) %win global *
filter -fw $"(%file) %win $1 *
}
%n = $ibl($1,0)
while (%i <= %n) {
%ultrabreak = 0
%banmask = $ibl($1,%i)
%banner = $ibl($1,%i).by
%date = $ibl($1,%i).ctime
%index = & %banmask
%t = 1
while ($line(%win,$fline(%win,%index,%t)) != $null) {
if ($gettok($ifmatch,2,32) == %banmask) {
%ultrabreak = 1
break
}
inc %t
}
if ($_not(%ultrabreak)) { aline %win $1 %banmask %banner %date }
inc %i
}
}
alias __cmd.bans.getban {
if ($_isint($1)) {
if ($1 <= $line(@__loadbans,0)) { return $1 }
}
else {
var %i = 1,%index = & $1 *,%l
while ($line(@__loadbans,$fline(@__loadbans,%index,%i)) != $null) {
if ($gettok($ifmatch,2,32) == $1) { return $fline(@__loadbans,%index,%i) }
inc %i
}
}
}
;_
; invites +o|o
; invites [[channel] wildcard]
; invites all
;_
; exempts +o|o
; exempts [[channel] wildcard]
; exempts all
; chanload +n|n
; chanload
alias chanload { _useredit.echocode chanload $1- }
alias _cmd.chanload {
if ($1 != $null) && ($_not($_ismaster($1,1,n))) { return 999 chanload }
.timer -o 1 0 _cmdlog $iif($1,$1,$me) chanload
return 218
}
; chanset +n|n
; chanset [channel] <settings>
alias chanset { _useredit.echocode chanset $1- }
alias _cmd.chanset {
tokenize 32 $1 $strip($2-)
var %limit,%pass,%i = 1,%l,%s,%f,%+,%-,%t
if ($_not($_ischan($2))) || (($left($2,1) isin -+) && ($istok($_partyline.chansetflags,$right($2,-1),32))) {
if ($1 == $null) { tokenize 32 $1 $iif($chan,$chan,$null) $2- }
else { tokenize 32 $1 $iif(%~plparse.cchan,%~plparse.cchan,$null) $2- }
}
if ($_not($_ischan($2))) || ($3- == $null) { return 536 }
if ($istok(chanmode idle-kick,$3,32)) || (($left($3,1) isin -+) && ($istok($_partyline.chansetflags,$right($3,-1),32))) {
if ($1 != $null) && ($_not($_ismaster($1,$2,mn))) { return 999 chanset }
}
elseif ($istok(need-op need-invite need-key need-unban need-limit,$3,32)) {
if ($1 != $null) {
if ($_not($_ismaster($1,0,n))) { return 999 chanset }
if ($istok($_getsetup(script,owner),$1,32) == $false) { return 588 }
}
}
else { return 537 $2 $3 }
if ($3 == chanmode) {
if ($4 != $null) {
%limit = 0
%l = $len($4)
%s = +
while (%i <= $len($4)) {
if ($mid($4,%i,1) isin -+) {
if ($ifmatch != %s) {
%f = %f $+ $ifmatch
%s = $ifmatch
}
}
elseif ($mid($4,%i,1) isincs lkipsmtnaq) {
if (%f == $null) { %f = + }
%+ = + $+ $mid($4,%i,1)
%- = - $+ $mid($4,%i,1)
%f = $removecs(%f,%+,%-,$mid($4,%i,1))
if (%f == $null) { %f = + }
%f = %f $+ $mid($4,%i,1)
if ($mid($4,%i,1) isincs kl) {
if (%s == +) {
inc %t
if ($mid($4,%i,1) === k) { %pass = $gettok($5-,%t,32) }
else { %limit = $gettok($5-,%t,32) }
}
elseif ($mid($4,%i,1) === k) { var %pass }
else { var %limit }
}
}
inc %i
}
%f = $_fixmodes(%f)
if (+l isincs %f) {
%f = $removecs(%f,+l)
if (%f == $null) { %f = + }
%f = %f $+ +l
}
else { var %limit }
if (+k isincs %f) {
%f = $removecs(%f,+k)
if (%f == $null) { %f = + }
%f = %f $+ +k
}
%f = $_unfixmodes(%f)
if (%pass == $null) { var %pass }
if (%limit != $null) && ((%limit !isnum) || (%limit <= 0)) { %limit = 0 }
}
_wchini $2 $3 %f %limit %pass
.timer -o 1 0 _cmdlog $iif($1,$1,$me) chanset $2 $3 $ $+ chr(123) %f %limit %pass $ $+ chr(125)
return 219 $2 $3 %f %limit %pass
}
elseif ($3 == idle-kick) {
%t = $iif($4 isnum && $4 > 0,$round($4,0),0)
_wchini $2 $3 %t
.timer -o 1 0 _cmdlog $iif($1,$1,$me) chanset $2 $3 $ $+ chr(123) %t $ $+ chr(125)
return 219 $2 $3 %t
}
elseif ($istok(need-op need-invite need-key need-unban need-limit,$3,32)) {
_wchini $2 $3 $4-
.timer -o 1 0 _cmdlog $iif($1,$1,$me) chanset $2 $3 $ $+ chr(123) $4- $ $+ chr(125)
return 219 $2 $3 $4-
}
else {
%s = $iif($left($3,1) == +,1,0)
%f = $right($3,-1)
_wchini $2 %f %s
.timer -o 1 0 _cmdlog $iif($1,$1,$me) chanset $2 $3
_chansetup2chanprot
return 220 $2 $3
}
}
; chansave +n|n
; chansave
alias chansave { _useredit.echocode chansave $1- }
alias _cmd.chansave {
if ($1 != $null) && ($_not($_ismaster($1,1,n))) { return 999 chansave }
.timer -mo 1 0 _cmdlog $iif($1,$1,$me) chansave
.timer -mo 1 100 _putlog Writing channel file ...
return 221
}
; chinfo +m|m
; chinfo <user> [channel] [info-line]
alias chinfo { _useredit.echocode chinfo $1- }
alias _cmd.chinfo {
var %result = $__cmd.chinfo($1-)
if ($left(%result,1) >= 4) { return %result }
_cmdlog $iif($1,$1,$me) chinfo $2-
return %result
}
alias __cmd.chinfo {
tokenize 32 $strip($1-)
var %chan,%line,%lock = 0,%line2
if ($_ischan($3)) {
%chan = $3
%line = $4-
}
else { %line = $3- }
if (%line == none) { var %line }
if ($1 != $null) && ($_not($_ismaster($1,%chan,mn))) { return 999 chinfo }
if ($_not($_getsetup(script,use-info))) { return 589 }
if ($2 == $null) { return 538 }
if ($_validateuser(4,$2,$null)) { return $ifmatch $2 }
if ($_partyline.chlevels($1,$2,%chan)) { return 998 }
_setuserfield $2 infoline. $+ $iif(%chan,%chan,default) %line
if (@* iswm %line) {
%lock = 1
%line2 = $_inputcom(@,%line)
}
else { %line2 = %line }
if (%line == $null) {
if (%chan) { return 227 $2 %chan }
return 228 $2
}
if (%chan) { return 229 $2 %chan %lock %line2 }
return 230 $2 %lock %line2
}
; info
; info [channel] [info-line]
alias _cmd.info {
var %result = $__cmd.info($1,$2-),%handle = $iif($1,$1,$me),%t = $gettok(%result,1,32),%chan = $gettok(%result,2,32)
if ($_not($_ischan(%chan))) { var %chan }
if (%t == 231) || (%t == 539) { _cmdlog %handle info %chan }
elseif (%t == 267) { _cmdlog %handle info %chan none }
elseif (%t == 232) { _cmdlog %handle info %chan ... }
return %result
}
alias __cmd.info {
tokenize 32 $1-
if ($_not($_getsetup(script,use-info))) { return 589 }
var %chan,%line,%lock,%line2,%r,%o,%olock = 0
if ($_ischan($2)) {
%chan = $2
%line = $3-
}
else { %line = $2- }
%r = infoline. $+ $iif(%chan,%chan,default)
%o = $_getuserfield($1,%r)
if (@* iswm %o) { var %o = $_inputcom(@,%o),%olock = 1 }
if (@* iswm %line) { %line = $_inputcom(@,%line) }
if (%line == $null) {
if (%o == $null) { return 539 }
return 231 $iif(%chan,%chan,$null) %o
}
if (%olock) && ($_not($_ismaster($1,%chan,mn))) { return 540 }
if (%line == none) {
_setuserfield $1 %r
return 267 %chan
}
_setuserfield $1 %r %line
return 232 $iif(%chan,%chan,$null) %line
}
; stick +o|o
; stick [ban/exempt/invite] <hostmask OR number> [channel]
; (aIRC modified command)
alias stick { _useredit.echocode stick $1- }
alias _cmd.stick {
var %chan,%dl,%line,%hostmask,%lc
if ($_ischan($3)) { %chan = $3 }
elseif ($1 != $null) {
if (%~plparse.cchan != $null) { %chan = $ifmatch }
}
else { %chan = $chan }
if ($1 != $null) && ($_not($_ismaster($1,%chan,mno))) { return 999 stick }
if ($2 == $null) || ($_not($_ischan(%chan))) { return 542 }
__cmd.bans.loadbans %chan
%dl = $__cmd.bans.getban($2)
if (%dl == $null) {
close -@ @__loadbans
return 535 %chan $2
}
%line = $line(@__loadbans,%dl)
%hostmask = $gettok(%line,2,32)
close -@ @__loadbans
if ($gettok(%line,5-,32) != $null) { write -l $+ %dl " $+ $_baninifile $+ " $puttok(%line,1,7,32) }
_cmdlog $iif($1,$1,$me) stick %hostmask
return 233 %hostmask
}
; unstick +o|o
; unstick [ban/exempt/invite] <hostmask OR number> [channel]
; (aIRC modified command)
alias unstick { _useredit.echocode unstick $1- }
alias _cmd.unstick {
var %chan,%dl,%line,%hostmask,%lc
if ($_ischan($3)) { %chan = $3 }
elseif ($1 != $null) {
if (%~plparse.cchan != $null) { %chan = $ifmatch }
}
else { %chan = $chan }
if ($1 != $null) && ($_not($_ismaster($1,%chan,mno))) { return 999 unstick }
if ($2 == $null) || ($_not($_ischan(%chan))) { return 543 }
__cmd.bans.loadbans %chan
%dl = $__cmd.bans.getban($2)
if (%dl == $null) {
close -@ @__loadbans
return 535 %chan $2
}
%line = $line(@__loadbans,%dl)
%hostmask = $gettok(%line,2,32)
close -@ @__loadbans
if ($gettok(%line,5-,32) != $null) { write -l $+ %dl " $+ $_baninifile $+ " $puttok(%line,0,7,32) }
_cmdlog $iif($1,$1,$me) unstick %hostmask
return 234 %hostmask
}