Check usermask in blacklist

Check usermask in blacklist

mIRC Snippet that checks for usermask in file that has been already blacklisted.

Postat de Copyright Categorie Review user Vizualizari Data
BLKoldSUN KingTomato protections Cod testat 423 2024-08-03 19:54:21

; -----------------------------------------------
; Starup
; -----------------------------------------------

on *:START: {
  /hmake blist 10
  if ($exists(blist.hsh)) /hload blist blist.hsh
}

; -----------------------------------------------
; Cleanup
; -----------------------------------------------

on *:EXIT: {
  if ($hget(blist)) /hsave blist blist.hsh
  /hfree blist
}

; -----------------------------------------------
; Join
; -----------------------------------------------

on me:1:JOIN:#: {
  .timer 1 1 /who $chan
}

on !@*:JOIN:#: {
  if ($hfind(blist, $address($nick, 11), 0, w) > 0) {
    /kick $chan $nick Banned (B-listed)
    /mode $chan +bb $nick $address($nick, 11)
  }
}

; -----------------------------------------------
; Menu
; -----------------------------------------------

Menu Nicklist {
  Blacklist $1
  .$iif($hfind(blist, $address($1, 11), 0, w) > 0, Remove, Add): {
    if ($hfind(blist, $address($1, 11), 0, w) > 0) {
      var %a = 0
      while ($hfind(blist, $address($1, 11), %a, w)) {
        /hdel blist $ifmatch
        /inc %a
      }
      /echo -a [B-list] $1 ( $+ $address($1, 5) $+ ) Removed
    }
    else {
      /hadd blist $address($1, 5)
      /hsave blist blist.hsh
      /kick $chan $1 Banned! (B-listed)
      /mode $chan +bb $1 $address($1, 5)
      /echo -a [B-list] $1 ( $+ $address($1, 5) $+ ) Added
    }
  }
}

; -----------------------------------------------
; Raw Reply
; -----------------------------------------------

raw *:*: {
  if ($numeric == 352) {
    var %chan = $2, %address = $+(*!*,$4), %nick = $6
    if ($me isop %chan) {
      if (($hfind(blist, %address, 0, w) > 0) && (%nick != $me)) {
        /kick %chan %nick Banned! (B-listed)
        /mode %chan +bb %nick %address
      }
    }
  }
  else if ($numeric == 367) {
    var %chan = $2, %address = $3
    if (($me isop %chan) && (%address iswm $address($me, 5))) /mode %chan -b %address
  }
}