Difference between revisions of "Unbannick"
From Scriptwiki
(first try, needs testing + comments + perhaps nicer text..) |
m |
||
(One intermediate revision by one other user not shown) | |||
Line 7: | Line 7: | ||
; on disconnect we clear the hashtable uhexec has used. | ; on disconnect we clear the hashtable uhexec has used. | ||
− | [[On_disconnect|on *:DISCONNECT]]:[[hdel]] -w uhexec $cid $+ .* | + | [[On_disconnect|on *:DISCONNECT]]:[[if]] ($hget(uhexec)) [[hdel]] -w uhexec $cid $+ .* |
− | [[alias]] -l uhq [[return]] [[$iif]]([[$hget]](uhexec,$+($cid,.,[[$1]])),$v1,$iif($1 !isnum,0)) | + | [[alias]] -l uhq [[return]] [[$iif]]([[$hget]](uhexec,$+($cid,.,[[$1-|$1]])),$v1,$iif($1 !isnum,0)) |
alias -l uhnext { | alias -l uhnext { | ||
$iif($0 > 1,hadd -m,hdel) uhexec $+($cid,.,$uhq($1) $2-) | $iif($0 > 1,hadd -m,hdel) uhexec $+($cid,.,$uhq($1) $2-) |
Latest revision as of 10:46, 11 September 2006
This script provides an alias to unban a "nick" (respectivly his address) even if this user isn't on the channel. Therefor, it uses the /who command to get the current address of a nickname.
The syntax is: /unbannick <channel> <nickname>
Additionally, it will drop the one unbanning this nick a message and the one that got unbanned a notice. The part about uhexec will be without further comments.
; on disconnect we clear the hashtable uhexec has used. on *:DISCONNECT:if ($hget(uhexec)) hdel -w uhexec $cid $+ .* alias -l uhq return $iif($hget(uhexec,$+($cid,.,$1)),$v1,$iif($1 !isnum,0)) alias -l uhnext { $iif($0 > 1,hadd -m,hdel) uhexec $+($cid,.,$uhq($1) $2-) hadd uhexec $+($cid,.,$1) $iif($uhq($1) < 64,$calc($v1 + 1),0) } alias -l uhexec { if ($status == connected) || ($ial($1).addr != $null) { uhnext head $1- userhost $1 } else $2- $ial($1).addr } raw $302:/^\S+( (\S+?)\*?=[+-](\S+)|) ?$/:{ tokenize 32 $uhq($uhq(tail)) if ($0) && (($regml(0) < 2) || ($1 == $regml(2))) { uhnext tail $2- $regml(3) halt } } alias -l uncb { ; <chan> <nick> [host] if ($3 == $null) return var %i = 1, %b, %a = $+($2,!,$3) while ($ibl($1,%i) != $null) { if ($v1 iswm %a) { %b = %b $v1 if ($numtok(%b,32) == $modespl) { mode $1 - $+ $str(b,$numtok(%b,32)) %b %b = } } inc %i } if (%b != $null) mode $1 - $+ $str(b,$numtok(%b,32)) %b msg $1 Unbanned $2 upon request notice $2 You're now unbanned on $1 } ; actually provide the alias (Syntax: /unbannick <chan> <nick>) alias unbannick uhexec $2 uncb $1-2