Fat's BlackList Addon — File Browser

FatsBlackListAddonv1.0 / FatsBlackListAddonv1.0 / blacklist / BlackList.mrc

BlackList.mrc — 5.26 KB — Download this file

dialog blist {
  title "Black List"
  size -1 -1 125 152
  option dbu
  list 1, 4 8 116 36, size
  check "Enable Black List", 2, 3 141 50 10
  button "Add", 3, 5 44 19 10
  button "Del", 4, 24 44 19 10
  button "Apply", 5, 98 138 25 12
  radio "Kick", 6, 3 110 24 10
  radio "Kick + Ban", 7, 77 110 35 10
  edit "", 8, 4 66 115 10, autohs
  radio "Ban", 11, 41 110 24 10
  box "Default Kick Reason", 15, 1 58 122 21
  box "Black Listed", 17, 1 1 122 56
  box "Exceptional (e.g: #chan1,#chan2)", 18, 1 80 122 21
  edit "", 19, 4 88 117 10
  check "Temp Ban", 12, 3 123 35 10
  edit "", 13, 38 123 15 10, autohs
  text "(seconds)", 14, 56 124 25 8
  box "Punishment", 20, 1 101 122 35
  button "Ok", 9, 72 138 25 12, ok
}

alias -l mdx { if ($lock(dll)) return | if ($isid) return $dll($mdx.udll,$1,$iif($2- != $null,$2-,.)) | dll $shortfn($mdx.udll) $1- }
alias -l mdx.udll { return $+(",$scriptdirmdx.dll,") }
alias -l mdx.vdll { return $scriptdirviews.mdx }

on *:dialog:blist:init:0:{
  mdx SetMircVersion $version | mdx MarkDialog $dname
  mdx SetControlMDX $dname 1 ListView report grid rowselect showsel nosortheader single > [ $mdx.vdll ]
  did -i $dname 1 1 headerdims 110 180
  did -i $dname 1 1 headertext Nick/Host $chr(9) Kick Reason
  var %i = 1
  while ($read($scriptdirblacklist.txt,%i)) {
    did -a $dname 1 $gettok($ifmatch,1,32) $chr(9) $gettok($ifmatch,2-,32)
    inc %i
  }

  did -c $dname $iif($hget(bl,punish) == kick,6,$iif($hget(bl,punish) == ban,11,$iif($hget(bl,punish) == kb,7)))
  did -a $dname 8 $hget(bl,default)
  if ($hget(bl,temp) == on) { did -c $dname 12 }
  if ($group(#blacklist) == on) { did -c $dname 2 }
  did -a $dname 13 $hget(bl,temptime)
  did -a $dname 19 $replace($hget(bl,exaptions),$chr(32),$chr(44))

}
alias -l AddtoHsh { hadd -m bl $1 $2- }
on *:dialog:blist:sclick:*:{
  if ($did == 5) { 
    addtohsh punish $iif($did(6).state == 1,kick,$iif($did(11).state == 1,ban,$iif($did(7).state == 1,kb)))
    addtohsh temp $iif($did(12).state == 1,on,off)
    addtohsh temptime $iif($did(13).text,$ifmatch,600) 
    addtohsh default $iif($did(8).text,Blacklisted)
    if ($did(19).text) { addtohsh exaptions $replace($ifmatch,$chr(44),$chr(32)) } | else { hdel bl exaptions }
    hsave -o bl $+(",$scriptdirbltable.hsh,")
    did -a $dname 9 Ok
  }
  if ($did == 2) { $iif($did(2).state == 1,.enable,.disable) #blacklist }
  if ($did == 3) {
    var %black = $$?="InsertNickname / Host" | var %reason = $?="insert kick reason (null = no reason)" 
    write $+(",$scriptdirblacklist.txt,") %black $iif(%reason,%reason,None)
    did -a $dname 1 %black $chr(9) $iif(%reason,%reason,None)
  }
  if ($did == 4 && $did(1).sel  != $null) { write -dl $+ $calc($did(1).sel - 1) $+(",$scriptdirblacklist.txt,")  | did -d $dname 1 $did(1).sel }
  if ($did != 5 && $did != 2 && $did != 3) { did -ra $dname 9 Cancel }
}
#blacklist on
on !@*:join:#:{
  if ($chan !isin $hget(bl,exaptions)) { echo -a sdgf
    if ($read($scriptdirblacklist.txt, s, $nick)) {
      if ($hget(bl,punish) == kick) { kick # $nick $iif($read($scriptdirblacklist.txt, s, $nick) == None,$replace(None,$hget(bl,default)),$ifmatch) }
      if ($hget(bl,punish) == kb) { ban $iif($hget(bl,temp) == on,-u [ $+ [ $hget(bl,temptime) ] ]) # $nick 2 | kick # $nick $iif($read($scriptdirblacklist.txt, s, $nick) == None,$hget(bl,default),$ifmatch) }
      if ($hget(bl,punish) == ban) { ban $iif($hget(bl,temp) == on,-u [ $+ [ $hget(bl,temptime) ] ]) # $nick }
      halt
    }
    else { 
      var %address $blist.address($nick) 
      if (%address isnum) {      
        if ($hget(bl,punish) == kick) { kick # $nick $iif($read($scriptdirblacklist.txt, s, $address($nick,%address)),$ifmatch,$hget(bl,default)) }
        if ($hget(bl,punish) == kb) { ban $iif($hget(bl,temp) == on,-u [ $+ [ $hget(bl,temptime) ] ]) # $address($nick,%address) | kick # $nick $iif($read($scriptdirblacklist.txt, s, $address($nick,%address)) == None,$hget(bl,default),$ifmatch) }
        if ($hget(bl,punish) == ban) { ban $iif($hget(bl,temp) == on,-u [ $+ [ $hget(bl,temptime) ] ]) # $address($nick,%address) }
        halt
      }
    }
  }
}
#blacklist end

alias blist.address {
  var %i = 1
  while ($read($scriptdirblacklist.txt,%i)) {
    var %z = 1
    while (%z <= 12) {
      if ($gettok($read($scriptdirblacklist.txt,%i),1,32) iswm $address($1,%z)) { return %z }
      inc %z 
    }
    inc %i
  }
} 

menu nicklist {
  Blacklist
  .$iif($read($scriptdirblacklist.txt, s, $$1),.Del $$1,Add $$1): if ($read($scriptdirblacklist.txt, s, $$1)) { write -ds $+ $$1 $scriptdirblacklist.txt } | else { var %a = $$?="insert reason (null = no reason)" | write $scriptdir.txt $$1 $iif(%a,%a) }
}
menu channel,status,menubar {
  Blacklist Dialog:$iif(!$dialog(blist).title,dialog -m blist blist)
}                     

on *:start:{
  hmake bl 12
  if ($read($scriptdirbltable.hsh,1)) {
    hload bl $+(",$scriptdirbltable.hsh,")
  }
  echo -a 4Fat's BlackList Addon Is No Loaded!
  echo -a 4Use Popups To Enter The BlackList Dialog.
  echo -a 4You Can Add Nick OR Host!, Quickly Add Nick By The Nicklist Popup.
  echo -a 4Enjoy, Addon Made By Youthanasia!
}
on *:unload:{
  .remove $+(",$scriptdirblacklist.txt,")
  hfree bl
  echo -a 4Blacklist Addon Unloaded.
}