on *:load: { set %shitlist.scan 1 set %shitlist.who 1 set %shitlist.nowho 1 enable #shitlist } alias slist { if ($dialog(shitlist) == $null) dialog -m shitlist shitlist else echo $color(info) -a * /slist: Shitlist dialog already open } dialog shitlist { title "HatShit v3.0 [/slist]" size -1 -1 624 354 tab "Users", 1, 12 18 600 267 tab "Options", 2 list 3, 19 43 588 118, tab 1 text "Hostmask (*!*@*) :", 4, 19 157 99 17, tab 1 edit "", 5, 18 178 589 20, tab 1 text "Reason (Leave blank for default message) :", 6, 16 201 211 17, tab 1 edit "", 7, 16 227 590 20, tab 1 button "Add to Shitlist", 8, 82 248 150 25, tab 1 button "Remove from Shitlist", 9, 392 248 150 25, tab 1 check "Scan for shitlisted nicks on op/halfop", 10, 19 46 197 17, tab 2 check "When shitlisted, global ban user", 11, 19 66 175 17, tab 2 text "Default Shitlist Reason", 12, 18 86 114 17, tab 2 edit %shitlist.defmsg, 13, 18 107 274 20, tab 2 check "/who on join", 14, 18 127 115 17, tab 2 check "Hide /who response", 15, 17 146 117 17, tab 2 check "Shitlist on", 16, 16 167 100 17, tab 2 button "Edit Entry", 17, 237 248 150 25, tab 1 text "HatShit v3.0 by Hatty", 99, 202 301 220 17, center button "Save", 100, 202 324 220 25, ok } on *:dialog:shitlist:sclick:*: { if ($did == 3) { did -ra $dname 5 $did(3).seltext did -ra $dname 7 $ulist($did(3).seltext).info } elseif ($did == 8) { if ($level($did(5).text) != shit) { var %mask if ($regex($did(5).text,/^.+$/)) %mask = $did(5).text $+ !*@* elseif ($regex($did(5).text,/^@.+/)) %mask = *!* $+ $did(5).text elseif ($regex($did(5).text,/^.+!.+@.+/)) %mask = $did(5).text .auser shit %mask $iif($did(7).text != $null,$did(7).text,%shitlist.defmsg) if (%shitlist.globan) global %mask $iif($did(7).text != $null,$did(7).text,%shitlist.defmsg) did -a $dname 3 %mask did -r $dname 5,7 } else { echo $color(info) -a * User is already on shitlist, use the EDIT button } } elseif ($did == 9) { .ruser shit $did(3).seltext did -d $dname 3 $did(3).sel did -r $dname 5,7 } elseif ($did == 10) %shitlist.scan = $did($dname,10).state elseif ($did == 11) %shitlist.globan = $did($dname,11).state elseif ($did == 14) %shitlist.who = $did($dname,14).state elseif ($did == 15) %shitlist.nowho = $did($dname,15).state elseif ($did == 16) { if (($did($dname,16).state) && ($group(#shitlist) == off)) .enable #shitlist elseif (($did($dname,16).state == 0) && ($group(#shitlist) == on)) .disable #shitlist } elseif ($did == 17) { .ruser shit $did(3).seltext .auser shit $did(5).text $did(7).text did -o $dname 3 $did(3).sel $did(5.text) did -r $dname 5,7 } } on *:dialog:shitlist:edit:13: { %shitlist.defmsg = $iif($did($dname,13).text != $null,$did($dname,13),Raging Idiot) } on *:dialog:shitlist:init:*: { populateShitlist if (%shitlist.scan == 1) did -c $dname 10 if (%shitlist.globan == 1) did -c $dname 11 if (%shitlist.who == 1) did -c $dname 14 if (%shitlist.nowho == 1) did -c $dname 15 if ($group(#shitlist).status == on) did -c $dname 16 } alias populateShitlist { var %x 1 while (%x <= $ulist(*,shit,0)) { did -a shitlist 3 $ulist(*,shit,%x) inc %x } } alias echoShitlist { var %x 1 echo 12 -a -------------------- echo 12 -a |HatShit by Hatty $str( ,3) $+ \ echo 12 -a |Shitlist: $str( ,11) $+ \ echo 12 -a ------------------------------------------------------------ while (%x <= $ulist(*,shit,0)) { echo 3 -a $ulist(*,shit,%x) echo 3 -a $ulist(*,shit,%x).info if ($ulist(*,shit,$calc(%x +1)) != $null) echo 3 -a - inc %x } echo 12 -a ------------------------------------------------------------ } on *:dialog:shitlist:close:*: { %shitlist.scan = $did($dname,10).state %shitlist.globan = $did($dname,11).state %shitlist.who = $did($dname,14).state %shitlist.nowho = $did($dname,15).state if (($did($dname,16).state) && ($group(#shitlist) == off)) .enable #shitlist elseif (($did($dname,16).state == 0) && ($group(#shitlist) == on)) .disable #shitlist } #shitlist on on shit:join:#: { if (($me isop $chan) || ($me ishop $chan)) { if ($chan == #IRChelp) halt { kb $nick Shitlisted 4[REASON: $+($ulist($fulladdress).info,]) notice $nick Only way to appeal blacklist is by E-Mailing me at Fierce.Deity@SwiftSwitch.net, if declined, you will not be unshitlisted. } } } menu channel { - Shitlist: slist Echo Shitlist to Main: echoshitlist } menu nicklist { - Shitlist .$address($$1,0) : shit $$1 0 .$address($$1,1) : shit $$1 1 .$address($$1,2) : shit $$1 2 .$address($$1,3) : shit $$1 3 .$address($$1,4) : shit $$1 4 .$address($$1,5) : shit $$1 5 .$address($$1,6) : shit $$1 6 .$address($$1,7) : shit $$1 7 .$address($$1,8) : shit $$1 8 .$address($$1,9) : shit $$1 9 .- .Shitlist Dialog: slist .Echo Shitlist to Current WIndow: echoshitlist } on *:op:#: { if (($opnick == $me) && (%shitlist.scan == 1)) { var %x = 1 while (%x <= $nick($chan,0)) { if ($level($ulist($address($nick($chan,%x),5))) == shit) { kb $nick($chan,%x) Shitlisted 4,1[Reason: 15,1 $+ $ulist($address($nick($chan,%x),5)).info $+ ] } inc %x } } } on *:helpop:#: { if (($helpop == $me) && (%shitlist.scan == 1)) { var %x = 1 while (%x <= $nick($chan,0)) { if ($level($ulist($address($nick($chan,%x),5))) == shit) { kb $nick($chan,%x) Shitlisted 4,1[Reason: $ulist($address($nick($chan,%x),5)).info $+ ] } inc %x } } } #shitlist end on *:join:#: { if (($nick == $me) && (%shitlist.who == 1)) who $chan } raw 315:*: { if (%shitlist.nowho) haltdef } raw 352:*: { if (%shitlist.nowho) haltdef } alias shit { var %reason = $iif($3 != $null, $3-,$?=\"Reason: Blank = Default Message") if (%reason == $null) %reason = %shitlist.defmsg .auser shit $address($$1,$$2) %reason kb $$1 Blaclisted! 4[Reason: %reason $+ ] var %x = 1 var %i = 1 if (%shitlist.globan == 1) { while (%x <= $comchan($me,0)) { if ($comchan($me,%x) != $chan) { msg $comchan($me,%x) Globally Banning 4' $+ $address($1,$2) $+ ' [[ $+ $1 $+ ]] For Reason: 5 $+ %reason $+  if ($1 ison $comchan($me,%x)) kick $comchan($me,%x) $1 Shitlisted. 5[Kickcount: $+(%kcount,]) mode $comchan($me,%x) +b $address($1,$2) } %i = 1 while (%i <= $nick($comchan($me,%x),0)) { if ($address($1,$2) == $address($nick($comchan($me,%x),%i),$2)) { if ($1 != $nick($comchan($me,%x),%i)) { kick $comchan($me,%x) Clone Searcher 4[ $+ $1 $+ ] 5[Kickcount: $+(%kcount,]) } } inc %i } inc %x } } } alias global { var %x = 1 var %i = 1 if (%shitlist.globan == 1) { while (%x <= $comchan($me,0)) { if ($comchan($me,%x) != $chan) { msg $comchan($me,%x) Globally Banning 4' $+ $1 $+ ' For Reason: 5 $+ $2 $+  mode $comchan($me,%x) +b $1 } inc %x } } }