All pastes #552145 Raw Edit

Project-D

public text v1 · immutable
·published 2007-06-09 03:43 UTC
rendered paste body
on *:start: {
  hmake blacklist 100
  if ($isfile(blacklist.hsh)) hload blacklist blacklist.hsh
}
on *:exit: if ($hget(blacklist)) hsave -o blacklist blacklist.hsh

;//usage syntax: /addban <Name> <address/nick to add>
;//Name is just something u use to identify the address banned(can be anything u want)
alias bl {
  var %x, %i = 1
  %x = $iif(@ !isin $2-,$+($2,$chr(33),$chr(42),$chr(64),$chr(42)),$2)
  if (!$2) { %x = $iif($address($1,3),$address($1,3),$+($1,$chr(33),$chr(42),$chr(64))) }
  hadd -m blacklist $1 %x
  echo -a »»» $+($1,$chr(32),$chr(40),%x,$chr(41))successfully added to blacklist
  while $chan(%i) {
    if ($1 ison $chan(%i)) && ($me !isreg $chan(%i)) && ($me !isvoice $chan(%i)) { ban -k $chan(%i) $nick 3 Blacklisted }
    inc %i
  }
}

;//Bans all the addresses/nicks in blacklist
alias Massban {
  var %i = 1, %x
  while ($hget(blacklist,%i).data) {
    %x = %x $ifmatch
    if ($numtok(%x,32) == $modespl) { mode $chan $+(+,$str(b,$modespl)) %x | %x = "" }
    inc %i
  }
  if (%x) { mode $chan $+(+,$str(b,$modespl)) %x }
}

;//View the blacklist
alias blacklist {
  window -c @blacklist
  window -el @blacklist
  aline -p @blacklist Your blacklist - To remove a ban use /removebl <name> - Entries: $hget(blacklist,0).item
  aline -p @blacklist Name: <Address/host>
  aline -p @blacklist ---
  var %i 1
  while ($hget(blacklist,%i).item) {
    aline -p @blacklist $v1 $+ : $hget(blacklist,%i).data
    inc %i
  }
}
;//Remove a bl
alias removebl {
  if (!$hget(blacklist,$$1-)) {
    echo -a »»» Error $1- Not found on blacklist
    halt
  }
  hdel blacklist $$1-
  echo -a »»» $$1- successfully deleted from blacklist
}

on *:join:#: {
  var %i = 1, %k
  while $hget(blacklist,%i).data {
    %k = $v1
    if ($address($nick,3) iswm %k) || ($nick == $hget(blacklist,%i).item) {
      ban -k $chan $nick 2 Blacklisted
    }
    inc %i
  }
}