rendered paste bodyon *:START: {
hmake blacklist 10
window -aeg1k0w3z @BlackList
aline -ahp @BlackList $timestamp [2BlackList] Table made.
hload blacklist blacklist.txt
aline -ahp @BlackList $timestamp [2BlackList] File loaded.
}
on *:EXIT: {
hsave blacklist blacklist.txt
}
alias +bl {
if ($1) && ($2) {
if ($address($1,2)) {
hadd blacklist $address($1,2) $asctime(dddd doo mmmm yyyy HH:nn:ss) $+ ; $+ $2-
if (!$window(@BlackList)) { window -aeng1k0w3z @BlackList }
aline -ahp @BlackList $timestamp [2BlackList] Added $+(5,$1,) (5 $+ $address($1,2) $+ ) to blacklist, reason:5 $2- $+
}
else {
hadd blacklist $1 $asctime(dddd doo mmmm yyyy HH:nn:ss) $+ ; $+ $2-
if (!$window(@BlackList)) { window -aeng1k0w3z @BlackList }
aline -ahp @BlackList $timestamp [2BlackList] Added $+(5,$1,) to blacklist, reason:5 $2- $+
}
}
elseif ($1) {
if ($address($1,2)) {
hadd blacklist $address($1,2) $asctime(dddd doo mmmm yyyy HH:nn:ss) $+ ;No reason specified.
if (!$window(@BlackList)) { window -aeng1k0w3z @BlackList }
aline -ahp @BlackList $timestamp [2BlackList] Added $+(5,$1,) (5 $+ $address($1,2) $+ ) to blacklist, with no reason specified.
}
else {
hadd blacklist $1 $asctime(dddd doo mmmm yyyy HH:nn:ss) $+ ;No reason specified.
if (!$window(@BlackList)) { window -aeng1k0w3z @BlackList }
aline -ahp @BlackList $timestamp [2BlackList] Added $+(5,$1,) to blacklist, with no reason specified.
}
}
else {
if (!$window(@BlackList)) { window -aeng1k0w3z @BlackList }
aline -ahp @BlackList $timestamp [2BlackList] Please use 5/+bl nick/hostmask reason
}
}
alias -bl {
if ($address($1,5)) {
var %bltemp $hfind(blacklist,$address($1,5),1,W)
hdel blacklist $hfind(blacklist,$address($1,5),1,W)
if (!$window(@BlackList)) { window -aeng1k0w3z @BlackList }
aline -ahp @BlackList $timestamp [2BlackList] Deleted3 $1 (3 $+ %bltemp $+ ) from blacklist.
}
elseif ($1 isnum) {
var %bltemp $hget(blacklist, $1).item
hdel blacklist $hget(blacklist, $1).item
if (!$window(@BlackList)) { window -aeng1k0w3z @BlackList }
aline -ahp @BlackList $timestamp [2BlackList] Deleted entry3 $1 (3 $+ %bltemp $+ ) from blacklist.
}
else {
hdel blacklist $1
if (!$window(@BlackList)) { window -aeng1k0w3z @BlackList }
aline -ahp @BlackList $timestamp [2BlackList] Deleted3 $1 from blacklist.
}
}
alias bl {
var %blline 1
if (!$window(@BlackList)) { window -aeng1k0w3z @BlackList }
aline -ahp @BlackList [2BlackList]
while (%blline <= $hget(blacklist, 0).item) {
tokenize 59 $hget(blacklist, %blline).data
aline -ahp @BlackList $+(05,%blline,.) Host:5 $hget(blacklist, %blline).item $+ , Added:5 $1 $+ , Reason:5 $2- $+
inc %blline
}
aline -ahp @BlackList -
aline -ahp @BlackList End of /bl
}
alias blhostget {
inc -z %blscanning $calc($nick($1,0) / 4)
var %blhostnick 1
.timer 1 %blscanning blscan $1
while (%blhostnick < $nick($1,0)) {
userhost $nick($1,%blhostnick) $nick($1,$calc(%blhostnick + 1)) $nick($1,$calc(%blhostnick + 2)) $nick($1,$calc(%blhostnick + 3)) $nick($1,$calc(%blhostnick + 4))
inc %blhostnick 5
}
}
alias blscan {
var %blnick $nick($1,0)
while (%blnick) {
blcheck $eval($nick($1,%blnick),2) $1
dec %blnick 1
}
}
alias blcheck {
if ($eval($hfind(blacklist,$address($1,5),1,W),2)) {
var %chan $2
var %nick $1
if (!$window(@BlackList)) { window -aeng1k0w3z @BlackList }
tokenize 59 $hget(blacklist,$hfind(blacklist,$address($1,5),1,W))
if ($me isop $chan) || ($me ishop $chan) {
aline -ahp @BlackList $timestamp [2BlackList]4 %nick (4 $+ $hfind(blacklist,$address(%nick,5),1,W) $+ ) is blacklisted, and has been banned from4 %chan $+ .
inc %kicks
ban -k %chan %nick 2 $+ $hget(blacklist,$hfind(blacklist,$address($1,5),1,W)) Blacklisted
}
else {
aline -ahp @BlackList $timestamp [2BlackList]4 %nick (4 $+ $hfind(blacklist,$address(%nick,5),1,W) $+ ) is blacklisted, you do not have op/hop in4 %chan and therefore cannot ban him/her.
}
}
}
on *:JOIN:#: {
if ($nick == $me) {
.timer 1 5 blhostget $chan
}
else {
blcheck $nick $chan
}
}
raw 302:*: {
if (%blscanning) {
haltdef
}
}