Fat's BlackList Addon — File Browser

FatsBlackListAddonv1.0 / FatsBlackListAddonv1.0 / BlackList.mrc

BlackList.mrc — 4.66 KB — Download this file

dialog blist {
  title "Black List"
  size -1 -1 146 210
  option dbu
  list 1, 4 23 116 65, size
  check "Enable", 2, 2 3 50 10
  button "Add", 3, 121 24 19 12
  button "Del", 4, 121 37 19 12
  button "Ok", 5, 125 196 19 12, ok
  radio "Kick", 6, 6 100 24 10
  radio "Kick & Ban", 7, 98 100 33 10
  edit "", 8, 5 150 135 10
  radio "Ban", 11, 53 100 24 10
  check "Temp Ban", 12, 7 118 35 10
  edit "", 13, 42 118 15 10 autohs
  text "(seconds)", 14, 60 119 25 8
  box "Default Kick Reason:", 15, 1 139 143 26
  box "Punish", 16, 1 91 143 45
  box "Black Listed", 17, 1 16 143 75
  box "Don't Kick Or Ban In (e.g: #chan1,#chan2,#chan3)", 18, 1 167 144 27
  edit "", 19, 5 178 135 10
}

on *:dialog:blist:init:0:{
  dll $+(",$scriptdirmdx.dll,") SetMircVersion $version | dll $+(",$scriptdirmdx.dll,") MarkDialog $dname
  dll $+(",$scriptdirmdx.dll,") SetControlMDX $dname 1 ListView report grid rowselect showsel nosortheader single > [ $scriptdirviews.mdx ]
  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(%blist.punish == kick,6,$iif(%blist.punish == ban,11,$iif(%blist.punish == kb,7)))
  did -a $dname 8 %blist.msg
  if (%blist.temp == on) { did -c $dname 12 }
  if ($group(#blacklist) == on) { did -c $dname 2 }
  did -a $dname 13 %blist.temptime
  did -a $dname 19 %blist.notkickin

}


on *:dialog:blist:sclick:*:{
  if ($did == 2) { $iif($did(2).state == 1,.enable,.disable) #blacklist }
  if ($did == 3) {
    var %a = $$?="Insert Nickname / Host" 
    var %b = $?="insert kick reason (null = no reason)" 
    write $+(",$scriptdirblacklist.txt,") %a $iif(%b,%b)
    did -a $dname 1 %a $chr(9) %b
  }
  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 == 6) { set %blist.punish kick }
  if ($did == 11) { set %blist.punish ban }
  if ($did == 7) { set %blist.punish kb }
  if ($did == 12) { set %blist.temp $iif($did(12).state == 1,on,off) }
}

on *:dialog:blist:edit:*:{
  if ($did == 8 && $did(8).text != $null) { set %blist.msg $did(8).text }
  if ($did == 13 && $did(13).text isnum) { set %blist.temptime $did(13).text }
  if ($did == 19) { if ($did(19).text == $null) { unset %blist.notkickin } | else { set %blist.notkickin $did(19).text } }
}

#blacklist off
on !@*:join:#:{
  if ($chan !isin %blist.notkickin) { 
    if ($read($scriptdirblacklist.txt, s, $nick)) {
      if (%blist.punish == kick) { kick # $nick $iif($read($scriptdirblacklist.txt, s, $nick),$ifmatch,%blist.msg) }
      if (%blist.punish == kb) { ban $iif(%blist.temp == on,-u [ $+ [ %blist.temptime ] ]) # $nick 2 | kick # $nick $iif($read($scriptdirblacklist.txt, s, $nick),$ifmatch,%blist.msg) }
      if (%blist.punish == ban) { ban $iif(%blist.temp == on,-u [ $+ [ %blist.temptime ] ]) # $nick }
      halt
    }
    else {
      var %address $blist.address($nick) 
      if (%address isnum) {
        if (%blist.punish == kick) { kick # $nick $iif($read($scriptdirblacklist.txt, s, $address($nick,%address)),$ifmatch,%blist.msg) }
        if (%blist.punish == kb) { ban $iif(%blist.temp == on,-u [ $+ [ %blist.temptime ] ]) # $address($nick,%address) | kick # $nick $iif($read($scriptdirblacklist.txt, s, $address($nick,%address)),$ifmatch,%blist.msg) }
        if (%blist.punish == ban) { ban $iif(%blist.temp == on,-u [ $+ [ %blist.temptime ] ]) # $address($nick,%address) }
        halt
      }
    }
  }
}
#blacklist end

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

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 *:load:{
  set %blist.msg BlackListed
  set %blist.punish kick
  set %blist.temptime 60
  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,")
  unset %blist.*
  echo -a 4Blacklist Addon Unloaded.
}