on *: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 } }