dialog Channel_protector { title "Protect Your Channel V0.1 - By Wildfire" size -1 -1 159 154 option dbu tab "General", 1, 0 -3 362 242 box "Updating", 5, 104 57 54 52, tab 1 text "Current Version: Version 0.1", 6, 106 68 50 20, tab 1 center button "Check For Updates", 7, 106 92 50 12, tab 1 box "Current Status", 8, 104 15 54 42, tab 1 radio "Off", 9, 106 26 19 14, group tab 1 radio "On", 10, 106 36 20 14, tab 1 box "Toggling On/Off", 11, 3 15 98 94, tab 1 text "Toggling on/off allowed?", 12, 8 25 86 10, tab 1 radio "No", 13, 8 37 50 10, group tab 1 radio "Yes", 14, 8 47 50 10, tab 1 check "By Me", 15, 15 57 50 10, disable tab 1 check "By Voices", 16, 15 87 50 10, disable tab 1 check "By Ops", 17, 15 67 50 10, disable tab 1 check "By Regulars", 18, 15 97 50 10, disable tab 1 check "By HalfOps", 19, 15 77 50 10, disable tab 1 box "Flood Control", 20, 3 110 102 42, tab 1 text "Turn Flood Control On For", 4, 7 118 66 7, tab 1 check "Actions", 22, 7 135 37 7, tab 1 check "Text", 23, 7 127 37 7, tab 1 check "Join/Parts", 24, 7 143 39 7, tab 1 button "Flood Settings", 21, 53 129 45 12, tab 1 button "Apply Settings", 75, 107 113 50 17, tab 1 button "Close", 76, 107 132 50 17, tab 1 cancel tab "Flooding", 2 box "Text", 25, 2 15 154 36, tab 2 text "Lines Allowed", 26, 7 25 37 8, tab 2 text "Per Seconds", 27, 7 36 37 8, tab 2 edit "", 28, 53 24 23 10, tab 2 edit "", 29, 53 35 23 10, tab 2 box "Actions", 30, 2 50 154 35, tab 2 box "Join/Part", 31, 2 85 154 36, tab 2 text "Lines Allowed", 36, 7 60 37 8, tab 2 text "Per Seconds", 38, 7 70 37 8, tab 2 edit "", 41, 53 70 23 10, tab 2 edit "", 42, 53 59 23 10, tab 2 button "Apply Settings", 33, 93 135 44 12, tab 2 text "Lines Allowed", 35, 7 95 37 8, tab 2 text "Per Seconds", 37, 7 105 37 8, tab 2 edit "", 40, 53 94 23 10, tab 2 edit "", 39, 53 104 23 10, tab 2 button "Close", 59, 19 135 44 12, tab 2 tab "Badwords", 3 box "Adding A Badword", 43, 2 15 71 38, tab 3 text "Badword", 44, 5 26 25 8, tab 3 edit "", 45, 30 25 40 10, tab 3 autohs button "Add Badword", 46, 18 38 37 12, tab 3 box "Status", 47, 75 15 36 38, tab 3 radio "Enable", 49, 79 25 27 12, tab 3 radio "Disable", 50, 79 38 29 11, tab 3 box "List Of Current Badwords", 48, 2 54 154 99, tab 3 list 51, 5 61 147 77, tab 3 size vsbar button "Show", 52, 24 139 39 12, tab 3 button "Delete Selected", 53, 95 139 42 12, tab 3 button "Apply Settings", 32, 114 18 39 12, tab 3 button "Close", 34, 114 40 39 12, tab 3 tab "Misellaneous", 54 box "Actions", 60, 51 12 56 36, tab 54 text "Allow Actions", 61, 56 19 42 8, tab 54 radio "Yes", 62, 54 27 50 7, group tab 54 radio "No", 63, 54 37 50 7, tab 54 box "What To Do When Someone Doesn't Follow Rules?", 64, 3 49 153 69, tab 54 combo 65, 7 61 60 28, tab 54 size drop radio "Kick", 66, 8 93 50 10, group tab 54 radio "Ban", 67, 8 103 50 10, tab 54 edit "", 70, 76 70 50 10, tab 54 autohs button "Apply Settings", 71, 92 132 41 12, tab 54 text "Message", 72, 76 60 25 8, tab 54 text "Unban After ... Seconds", 73, 76 85 65 8, hide tab 54 edit "", 74, 76 98 20 10, hide tab 54 button "Close", 77, 26 132 41 12, tab 54 } menu * { Protect Your Channel:/getit } alias /getit { /dialog -ms Channel_protector Channel_protector } on *:dialog:Channel_protector:init:0:{ /did -a Channel_protector 65 Any Action /did -a Channel_protector 65 Text Flood /did -a Channel_protector 65 Join Flood /did -a Channel_protector 65 Badword /did -a Channel_protector 65 Action Flood /did -c Channel_protector $iif($readini(ChanProt.ini,Status,General) == On,10,9) /did -c Channel_protector $iif($readini(ChanProt.ini,Status,Badwords) == On,49,50) /did -c Channel_protector $iif($readini(ChanProt.ini,Status,Toggling) == On,14,13) /did -c Channel_protector $iif($readini(ChanProt.ini,Status,Actions) == On,63,62) if ($did(14).state == 1) did -e Channel_protector 15-19 if ($readini(ChanProt.ini,Toggling,Me) == 1) did -c Channel_Protector 15 if ($readini(ChanProt.ini,Toggling,Ops) == 1) did -c Channel_Protector 17 if ($readini(ChanProt.ini,Toggling,Halfops) == 1) did -c Channel_Protector 19 if ($readini(ChanProt.ini,Toggling,Voices) == 1) did -c Channel_Protector 16 if ($readini(ChanProt.ini,Toggling,Regulars) == 1) did -c Channel_Protector 18 if ($readini(ChanProt.ini,Flood,Text) == 1) did -c Channel_Protector 23 if ($readini(ChanProt.ini,Flood,Actions) == 1) did -c Channel_Protector 22 if ($readini(ChanProt.ini,Flood,Join/Part) == 1) did -c Channel_Protector 24 did -a Channel_Protector 28 $readini(ChanProt.ini,Text-Flood,Lines) did -a Channel_Protector 29 $readini(ChanProt.ini,Text-Flood,Seconds) did -a Channel_Protector 42 $readini(ChanProt.ini,Action-Flood,Lines) did -a Channel_Protector 41 $readini(ChanProt.ini,Action-Flood,Seconds) did -a Channel_Protector 40 $readini(ChanProt.ini,Join/Part-Flood,Lines) did -a Channel_Protector 39 $readini(ChanProt.ini,Join/Part-Flood,Seconds) } on *:dialog:Channel_protector:sclick:14:{ did -e Channel_protector 15-19 } on *:dialog:Channel_protector:sclick:13:{ did -ub Channel_protector 15-19 } on *:dialog:Channel_protector:sclick:52:{ did -r Channel_Protector 51 var %x 1 while ($ini(ChanProt.ini,badwords,%x)) { did -a Channel_protector 51 $ini(ChanProt.ini,badwords,%x) /inc %x } } on *:dialog:Channel_Protector:sclick:46:{ writeini ChanProt.ini badwords $did(45) Badword echo -as $did(45) added as badword! did -r Channel_Protector 45 } on *:dialog:Channel_Protector:sclick:53:{ remini ChanProt.ini Badwords $did(51).seltext Badword echo -as $did(51).seltext deleted as badword! did -d Channel_Protector 51 $did(51).sel } on *:dialog:Channel_Protector:sclick:76,59,34,77:{ dialog -x Channel_Protector } on *:dialog:Channel_Protector:sclick:75,33,32,71:{ writeini ChanProt.ini Status Toggling $iif($replace($did(14).state,1,On) == On,$v2,Off) writeini ChanProt.ini Status General $iif($replace($did(10).state,1,On) == On,$v2,Off) writeini ChanProt.ini Status Badwords $iif($replace($did(49).state,1,On) == On,$v2,Off) writeini ChanProt.ini Status Actions $iif($replace($did(63).state,1,On) == On,$v2,Off) writeini ChanProt.ini Toggling Me $did(15).state writeini ChanProt.ini Toggling Ops $did(17).state writeini ChanProt.ini Toggling Halfops $did(19).state writeini ChanProt.ini Toggling Voices $did(16).state writeini ChanProt.ini Toggling Regulars $did(18).state writeini ChanProt.ini Flood Text $did(23).state writeini ChanProt.ini Flood Actions $did(22).state writeini ChanProt.ini Flood Join/Part $did(24).state writeini ChanProt.ini Text-Flood Lines $did(28) writeini ChanProt.ini Text-Flood Seconds $did(29) writeini ChanProt.ini Action-Flood Lines $did(42) writeini ChanProt.ini Action-Flood Seconds $did(41) writeini ChanProt.ini Join/Part-Flood Lines $did(40) writeini ChanProt.ini Join/Part-Flood Seconds $did(39) if ($did(66).state == 1) set %qsdf $replace($did(65),$chr(32),$chr(95)) /Kick $did(70) if ($did(67).state == 1) set %qsdf $replace($did(65),$chr(32),$chr(95)) /Ban -ku $+ $did(74) $did(70) if (!$did(65)) halt if ($did(65)) writeini ChanProt.ini Punishment %qsdf unset %qsdf } on *:dialog:Channel_Protector:sclick:21:{ did -f Channel_Protector 2 } on *:dialog:Channel_Protector:sclick:66-69:{ if ($did == 67) did -v Channel_Protector 73-74 if ($did !== 67) did -h Channel_Protector 73-74 } on *:dialog:Channel_Protector:sclick:65:{ did -r Channel_Protector 70 did -a Channel_Protector 70 $iif(*-k* iswm $gettok($readini(ChanProt.ini,Punishment,$replace($did(65),$chr(32),$chr(95))),2,32),$gettok($readini(ChanProt.ini,Punishment,$replace($did(65),$chr(32),$chr(95))),3-,32),$gettok($readini(ChanProt.ini,Punishment,$replace($did(65),$chr(32),$chr(95))),2-,32)) did -u Channel_Protector $iif($gettok($readini(ChanProt.ini,Punishment,$replace($did(65),$chr(32),$chr(95))),1,32) == /kick,67,66) did -c Channel_Protector $iif($gettok($readini(ChanProt.ini,Punishment,$replace($did(65),$chr(32),$chr(95))),1,32) == /ban,67,66) if ($gettok($readini(ChanProt.ini,Punishment,$replace($did(65),$chr(32),$chr(95))),1,32) == /ban) { did -v Channel_Protector 73-74 did -r Channel_Protector 74 did -a Channel_Protector 74 $remove($gettok($readini(ChanProt.ini,Punishment,$replace($did(65),$chr(32),$chr(95))),2,32),-ku) } else { did -h Channel_Protector 73-74 } } on *:dialog:Channel_Protector:sclick:7:{ /dialog -m Updating Updating set %currentversion $did(6) } dialog Updating { title "Updating Your Channel Protector" size -1 -1 139 100 option dbu button "Check For Updates", 1, 11 83 53 12 button "Close", 2, 88 83 37 12, cancel box "Update Progress", 4, 7 4 122 72 list 3, 12 13 111 59, size } on *:dialog:Updating:sclick:1:{ did -r Updating 3 did -ab Updating 1 Please Wait... if ($sock(Updating)) .sockclose Updating sockopen Updating updatecp.110mb.com 80 } on *:SOCKOPEN:Updating: { sockwrite -nt $sockname GET /Update.htm HTTP/1.1 sockwrite -nt $sockname Host: updatecp.110mb.com sockwrite -nt $sockname $crlf } on *:SOCKREAD:Updating: { if ($sockerr) { notice %nick Socket Error: $sockname $+ . Error code: $sockerr Please inform $me of this error message. halt } else { var %sockreader sockread %sockreader if (%update) { unset %update did -a Updating 3 %sockreader did -ae Updating 1 Check For Updates } if (*Most Recent Version* iswm %sockreader) { set %update %sockreader did -a Updating 3 %currentversion did -a Updating 3 %sockreader } } } on *:dialog:Updating:close:*:{ unset %currentversion } on *:text:!cp *:#:{ if (($iif($readini(Chanprot.ini,Toggling,Me) == 1, $address($nick,2),$v2) == $address($me,2)) || ($iif($readini(Chanprot.ini,Toggling,Ops) == 1,$nick,$v2) isop $chan) || ($iif($readini(Chanprot.ini,Toggling,Halfops) == 1,$nick,$v2) ishop $chan) || ($iif($readini(Chanprot.ini,Toggling,Voices) == 1,$nick,$v2) isvoice $chan)) || ($iif($readini(Chanprot.ini,Toggling,Regulars) == 1,$nick,$v2) isreg $chan) { if ($2 == on) { writeini ChanProt.ini Status General On msg $chan $chr(3) $+ 4Channel Protector $chr(3) $+ 12is now $chr(3) $+ 4on } if ($2 == off) { writeini ChanProt.ini Status General off msg $chan $chr(3) $+ 4Channel Protector $chr(3) $+ 12is now $chr(3) $+ 4off } } } on *:action:*:#:{ if (($readini(ChanProt.ini,Status,Badwords) == on) && ($readini(ChanProt.ini,Status,General) == On)) { var %x 1 while ($ini(ChanProt.ini,badwords,%x)) { if ($ini(ChanProt.ini,badwords,%x) isin $1-) { $iif($gettok($readini(ChanProt.ini,Punishment,Badword),1,32) == /ban,$gettok($readini(ChanProt.ini,Punishment,Badword),1-2,32),$v1) $chan $nick $iif(*-k* iswm $gettok($readini(ChanProt.ini,Punishment,Badword),2,32),$gettok($readini(ChanProt.ini,Punishment,Badword),3-,32),$gettok($readini(ChanProt.ini,Punishment,Badword),2-,32)) halt } /inc %x } } if (($readini(ChanProt.ini,Status,Actions) == On) && ($readini(ChanProt.ini,Status,General) == On)) { $iif($gettok($readini(ChanProt.ini,Punishment,Any_Action),1,32) == /ban,$gettok($readini(ChanProt.ini,Punishment,Any_Action),1-2,32),$v1) $chan $nick $iif(*-k* iswm $gettok($readini(ChanProt.ini,Punishment,Any_Action),2,32),$gettok($readini(ChanProt.ini,Punishment,Any_Action),3-,32),$gettok($readini(ChanProt.ini,Punishment,Any_Action),2-,32)) } if (($readini(ChanProt.ini,Flood,Actions) == 1) && ($readini(ChanProt.ini,Status,General) == On)) { if (%actionflood. [ $+ [ $nick ] ]) { inc %actionflood. [ $+ [ $nick ] ] if (%actionflood. [ $+ [ $nick ] ] >= $calc($readini(ChanProt.ini,Action-Flood,Lines) +1)) { $iif($gettok($readini(ChanProt.ini,Punishment,Action_Flood),1,32) == /ban,$gettok($readini(ChanProt.ini,Punishment,Action_Flood),1-2,32),$v1) $chan $nick $iif(*-k* iswm $gettok($readini(ChanProt.ini,Punishment,Action_Flood),2,32),$gettok($readini(ChanProt.ini,Punishment,Action_Flood),3-,32),$gettok($readini(ChanProt.ini,Punishment,Action_Flood),2-,32)) unset %actionflood. [ $+ [ $nick ] ] } } else { /set $+(-u,$readini(ChanProt.ini,Action-Flood,Seconds)) %actionflood. [ $+ [ $nick ] ] 1 } } } on *:text:*:#:{ if (($readini(ChanProt.ini,Status,Badwords) == on) && ($readini(ChanProt.ini,Status,General) == On)) { var %x 1 while ($ini(ChanProt.ini,badwords,%x)) { if ($ini(ChanProt.ini,badwords,%x) isin $1-) { $iif($gettok($readini(ChanProt.ini,Punishment,Badword),1,32) == /ban,$gettok($readini(ChanProt.ini,Punishment,Badword),1-2,32),$v1) $chan $nick $iif(*-k* iswm $gettok($readini(ChanProt.ini,Punishment,Badword),2,32),$gettok($readini(ChanProt.ini,Punishment,Badword),3-,32),$gettok($readini(ChanProt.ini,Punishment,Badword),2-,32)) halt } /inc %x } } if (($readini(ChanProt.ini,Flood,Text) == 1) && ($readini(ChanProt.ini,Status,General) == On)) { if (%Textflood. [ $+ [ $nick ] ]) { inc %Textflood. [ $+ [ $nick ] ] if (%Textflood. [ $+ [ $nick ] ] >= $calc($readini(ChanProt.ini,Text-Flood,Lines) +1)) { $iif($gettok($readini(ChanProt.ini,Punishment,Text_Flood),1,32) == /ban,$gettok($readini(ChanProt.ini,Punishment,Text_Flood),1-2,32),$v1) $chan $nick $iif(*-k* iswm $gettok($readini(ChanProt.ini,Punishment,Text_Flood),2,32),$gettok($readini(ChanProt.ini,Punishment,Text_Flood),3-,32),$gettok($readini(ChanProt.ini,Punishment,Text_Flood),2-,32)) unset %Textflood. [ $+ [ $nick ] ] } } else { /set $+(-u,$readini(ChanProt.ini,Text-Flood,Seconds)) %Textflood. [ $+ [ $nick ] ] 1 } } } on *:join:#:{ if (($readini(ChanProt.ini,Flood,Join/Part) == 1) && ($readini(ChanProt.ini,Status,General) == On)) { if (%joinflood. [ $+ [ $nick ] ]) { inc %joinflood. [ $+ [ $nick ] ] if (%joinflood. [ $+ [ $nick ] ] >= $calc($readini(ChanProt.ini,Join/Part-Flood,Lines) +1)) { $iif($gettok($readini(ChanProt.ini,Punishment,Join_Flood),1,32) == /ban,$gettok($readini(ChanProt.ini,Punishment,Join_Flood),1-2,32),$v1) $chan $nick $iif(*-k* iswm $gettok($readini(ChanProt.ini,Punishment,Join_Flood),2,32),$gettok($readini(ChanProt.ini,Punishment,Join_Flood),3-,32),$gettok($readini(ChanProt.ini,Punishment,Join_Flood),2-,32)) } } else { /set $+(-u,$readini(ChanProt.ini,Join/Part-Flood,Seconds)) %joinflood. [ $+ [ $nick ] ] 1 } } } on *:Part:#:{ if (($readini(ChanProt.ini,Flood,Join/Part) == 1) && ($readini(ChanProt.ini,Status,General) == On)) { if (%joinflood. [ $+ [ $nick ] ]) { inc %joinflood. [ $+ [ $nick ] ] if (%joinflood. [ $+ [ $nick ] ] >= $calc($readini(ChanProt.ini,Join/Part-Flood,Lines) +1)) { $iif($gettok($readini(ChanProt.ini,Punishment,Join_Flood),1,32) == /ban,$gettok($readini(ChanProt.ini,Punishment,Join_Flood),1-2,32),$v1) $chan $nick $iif(*-k* iswm $gettok($readini(ChanProt.ini,Punishment,Join_Flood),2,32),$gettok($readini(ChanProt.ini,Punishment,Join_Flood),3-,32),$gettok($readini(ChanProt.ini,Punishment,Join_Flood),2-,32)) } } else { /set $+(-u,$readini(ChanProt.ini,Join/Part-Flood,Seconds)) %joinflood. [ $+ [ $nick ] ] 1 } } }