Personal Flood Protection — File Browser

PersonalFloodProtectionv1.1 / PersonalFloodProtectionv1.1 / pprot / pprotdlg.mrc

pprotdlg.mrc — 25.39 KB — Download this file

dialog floodprot_ {
  title "Personal Flood Protection"
  size -1 -1 236 152
  option dbu
  tab "Text", 1, 5 1 225 127
  check "Trigger after", 174, 15 28 39 10, tab 1
  edit "", 13, 55 28 26 10, tab 1
  edit "", 15, 107 28 26 10, tab 1
  edit "", 17, 177 28 26 10, tab 1
  check "Inform me I am being flooded (recommended)", 19, 15 45 120 10, tab 1
  check "inform lamer they are ignored", 20, 140 45 78 10, tab 1
  text "lines    in", 14, 82 30 23 8, tab 1
  text "sec(s)   ignore for", 16, 134 30 41 8, tab 1
  text "sec(s)", 18, 205 30 16 8, tab 1
  text "Ignore:", 24, 15 60 20 8, tab 1
  check "private", 25, 37 59 27 10, tab 1
  check "channel", 26, 67 59 31 10, tab 1
  check "notice", 27, 100 59 25 10, tab 1
  check "ctcp", 28, 129 59 22 10, tab 1
  check "invite", 29, 156 59 25 10, tab 1
  check "dcc", 30, 183 59 25 10, tab 1
  check "Trigger after", 175, 15 92 39 10, tab 1
  edit "", 31, 55 92 26 10, tab 1
  text "lines    in", 32, 82 94 23 8, tab 1
  edit "", 33, 107 92 26 10, tab 1
  edit "", 35, 177 92 26 10, tab 1
  text "sec(s)", 36, 205 94 16 8, tab 1
  check "Inform me I am being flooded (recommended)", 37, 15 107 120 10, tab 1
  text "sec(s)   ignore for", 176, 134 94 41 8, tab 1
  tab "Notice", 2
  check "Trigger after", 178, 15 28 39 10, tab 2
  edit "", 38, 55 28 26 10, tab 2
  edit "", 39, 107 28 26 10, tab 2
  edit "", 40, 177 28 26 10, tab 2
  check "Inform me I am being flooded (recommended)", 41, 15 45 120 10, tab 2
  check "inform lamer they are ignored", 42, 140 45 78 10, tab 2
  text "lines    in", 43, 82 30 23 8, tab 2
  text "sec(s)   ignore for", 44, 134 30 41 8, tab 2
  text "sec(s)", 45, 205 30 16 8, tab 2
  text "Ignore:", 46, 15 60 20 8, tab 2
  check "private", 47, 37 59 27 10, tab 2
  check "channel", 48, 67 59 31 10, tab 2
  check "notice", 49, 100 59 25 10, tab 2
  check "ctcp", 50, 129 59 22 10, tab 2
  check "invite", 51, 156 59 25 10, tab 2
  check "dcc", 52, 183 59 25 10, tab 2
  check "Trigger after", 182, 15 92 39 10, tab 2
  edit "", 53, 55 92 26 10, tab 2
  edit "", 56, 107 92 26 10, tab 2
  edit "", 57, 177 92 26 10, tab 2
  check "Inform me I am being flooded (recommended)", 59, 15 107 120 10, tab 2
  text "sec(s)", 179, 205 94 16 8, tab 2
  text "sec(s)   ignore for", 180, 134 94 41 8, tab 2
  text "lines    in", 181, 82 94 23 8, tab 2
  tab "CTCP", 3
  check "Trigger after", 185, 15 28 39 10, tab 3
  edit "", 60, 55 28 26 10, tab 3
  edit "", 61, 107 28 26 10, tab 3
  edit "", 62, 177 28 26 10, tab 3
  check "Inform me I am being flooded (recommended)", 63, 15 45 120 10, tab 3
  check "inform lamer they are ignored", 64, 140 45 78 10, tab 3
  text "CTCPs in:", 65, 82 30 25 8, tab 3
  text "Ignore:", 68, 15 60 20 8, tab 3
  check "private", 69, 37 59 27 10, tab 3
  check "channel", 70, 67 59 31 10, tab 3
  check "notice", 71, 100 59 25 10, tab 3
  check "ctcp", 72, 129 59 22 10, tab 3
  check "invite", 73, 156 59 25 10, tab 3
  check "dcc", 74, 183 59 25 10, tab 3
  check "Trigger after", 188, 15 92 39 10, tab 3
  edit "", 75, 55 92 26 10, tab 3
  text "CTCPs in:", 76, 82 94 25 8, tab 3
  edit "", 78, 107 92 26 10, tab 3
  edit "", 79, 177 92 26 10, tab 3
  check "Inform me I am being flooded (recommended)", 81, 15 107 120 10, tab 3
  text "sec(s)", 183, 205 30 16 8, tab 3
  text "sec(s)   ignore for", 184, 134 30 41 8, tab 3
  text "sec(s)", 186, 205 94 16 8, tab 3
  text "sec(s)   ignore for", 187, 134 94 41 8, tab 3
  tab "Invite", 4
  check "Trigger after", 193, 15 28 39 10, tab 4
  edit "", 82, 55 28 26 10, tab 4
  edit "", 83, 107 28 26 10, tab 4
  edit "", 84, 177 28 26 10, tab 4
  check "Inform me I am being flooded (recommended)", 85, 15 45 120 10, tab 4
  check "inform lamer they are ignored", 86, 140 45 78 10, tab 4
  text "invites in:", 87, 82 30 23 8, tab 4
  text "Ignore:", 90, 15 60 20 8, tab 4
  check "private", 91, 37 59 27 10, tab 4
  check "channel", 92, 67 59 31 10, tab 4
  check "notice", 93, 100 59 25 10, tab 4
  check "ctcp", 94, 129 59 22 10, tab 4
  check "invite", 95, 156 59 25 10, tab 4
  check "dcc", 96, 183 59 25 10, tab 4
  check "Trigger after", 194, 15 92 39 10, tab 4
  edit "", 97, 55 92 26 10, tab 4
  text "invites in:", 98, 82 94 23 8, tab 4
  edit "", 100, 107 92 26 10, tab 4
  edit "", 101, 177 92 26 10, tab 4
  check "Inform me I am being flooded (recommended)", 103, 15 107 120 10, tab 4
  text "sec(s)", 189, 205 30 16 8, tab 4
  text "sec(s)   ignore for", 191, 134 30 41 8, tab 4
  text "sec(s)   ignore for", 192, 134 94 41 8, tab 4
  text "sec(s)", 190, 205 94 16 8, tab 4
  tab "DCC", 5
  check "Trigger after", 199, 15 28 39 10, tab 5
  edit "", 104, 55 28 26 10, tab 5
  edit "", 105, 107 28 26 10, tab 5
  edit "", 106, 177 28 26 10, tab 5
  check "Inform me I am being flooded (recommended)", 107, 15 45 120 10, tab 5
  check "inform lamer they are ignored", 108, 140 45 78 10, tab 5
  text "DCC's in:", 109, 82 30 23 8, tab 5
  text "Ignore:", 112, 15 60 20 8, tab 5
  check "private", 113, 37 59 27 10, tab 5
  check "channel", 114, 67 59 31 10, tab 5
  check "notice", 115, 100 59 25 10, tab 5
  check "ctcp", 116, 129 59 22 10, tab 5
  check "invite", 117, 156 59 25 10, tab 5
  check "dcc", 118, 183 59 25 10, tab 5
  check "Trigger after", 200, 15 92 39 10, tab 5
  edit "", 119, 55 92 26 10, tab 5
  text "DCC's in:", 120, 82 94 23 8, tab 5
  edit "", 122, 107 92 26 10, tab 5
  edit "", 123, 177 92 26 10, tab 5
  check "Inform me I am being flooded (recommended)", 125, 15 107 120 10, tab 5
  text "sec(s)", 195, 205 30 16 8, tab 5
  text "sec(s)", 196, 205 94 16 8, tab 5
  text "sec(s)   ignore for", 198, 134 94 41 8, tab 5
  text "sec(s)   ignore for", 197, 134 30 41 8, tab 5
  tab "Query", 6
  check "Trigger after", 207, 15 28 39 10, tab 6
  edit "", 126, 55 28 26 10, tab 6
  edit "", 127, 107 28 26 10, tab 6
  edit "", 128, 177 28 26 10, tab 6
  check "Inform me I am being flooded (recommended)", 129, 15 45 120 10, tab 6
  check "inform lamer they are ignored", 130, 140 45 78 10, tab 6
  text "Ignore:", 134, 15 60 20 8, tab 6
  check "private", 135, 37 59 27 10, tab 6
  check "channel", 136, 67 59 31 10, tab 6
  check "notice", 137, 100 59 25 10, tab 6
  check "ctcp", 138, 129 59 22 10, tab 6
  check "invite", 139, 156 59 25 10, tab 6
  check "dcc", 140, 183 59 25 10, tab 6
  check "Close any open query window with nick", 141, 15 70 106 10, tab 6
  check "Trigger after", 208, 15 92 39 10, tab 6
  edit "", 142, 55 92 26 10, tab 6
  edit "", 145, 107 92 26 10, tab 6
  edit "", 146, 177 92 26 10, tab 6
  check "Inform me I am being flooded (recommended)", 148, 15 107 120 10, tab 6
  check "Close all query windows", 149, 138 107 74 10, tab 6
  text "sec(s)", 201, 205 30 16 8, tab 6
  text "sec(s)", 202, 205 94 16 8, tab 6
  text "sec(s)   ignore for", 203, 134 30 41 8, tab 6
  text "sec(s)   ignore for", 204, 136 94 41 8, tab 6
  text "lines    in", 205, 82 30 23 8, tab 6
  text "lines    in", 206, 82 94 23 8, tab 6
  tab "DCC Chat", 7
  check "Trigger after", 212, 15 28 39 10, tab 7
  edit "", 150, 55 28 26 10, tab 7
  edit "", 151, 107 28 26 10, tab 7
  edit "", 152, 177 28 26 10, tab 7
  check "Inform me I am being flooded (recommended)", 153, 15 45 120 10, tab 7
  check "inform lamer they are ignored", 154, 140 45 78 10, tab 7
  text "Ignore:", 158, 15 60 20 8, tab 7
  check "private", 159, 37 59 27 10, tab 7
  check "channel", 160, 67 59 31 10, tab 7
  check "notice", 161, 100 59 25 10, tab 7
  check "ctcp", 162, 129 59 22 10, tab 7
  check "invite", 163, 156 59 25 10, tab 7
  check "dcc", 164, 183 59 25 10, tab 7
  check "Close any open chat window with nick", 165, 15 70 106 10, tab 7
  text "I have yet to see a successful botnet flood via DCC chat so I will not include any options for this type of flood. Enjoy the pretty white space. ;)", 12, 15 92 177 16, tab 7
  text "sec(s)", 209, 205 30 16 8, tab 7
  text "sec(s)   ignore for", 210, 134 30 41 8, tab 7
  text "lines    in", 211, 82 30 23 8, tab 7
  tab "Help", 23
  text "Everything is pretty much self explanatory but here are a few things to note:", 166, 15 29 201 8, tab 23
  text "3. Any questions or comments email:", 172, 15 113 87 8, tab 23
  link "moonman@oh-snap.org", 173, 103 113 62 8, tab 23
  text "1. The mask is the ignore mask for all types of user floods", 213, 15 40 201 8, tab 23
  text "2. The Default button resets all settings to their original values (you must click the apply button afterward to save the changes)", 214, 15 51 201 16, tab 23
  text "3. For new settings to take place, you must click the apply button", 215, 15 70 201 8, tab 23
  text "1. Ignore types for botnet floods are hard coded", 216, 15 91 201 8, tab 23
  text "2. Read the README file that came with the addon!", 217, 15 102 201 8, tab 23
  box "User", 10, 11 19 214 66
  box "Botnet", 11, 11 81 214 43
  text "Mask:", 21, 5 139 15 8
  combo 22, 20 137 86 53, size drop
  button "&Defaults", 177, 109 136 37 12
  button "&Apply", 8, 152 136 37 12, ok
  button "&Cancel", 9, 195 136 37 12, cancel
}
; down and dirty dialog work...
alias floodprot dialog $iif($dialog(floodprot_),-v,-m) floodprot_ floodprot_
on *:dialog:floodprot_:*:*:{
  ; initialization commands  
  if ($devent == init) {
    ; ignore mask
    did -ca $dname 22 $chr(91) $+ $readini($fp,address,mask) $+ $chr(93) $mask(nick!user@host.domain.com,$readini($fp,address,mask))
    var %m.m = 0 | while (%m.m <= 9) { did -ka $dname 22 $+($chr(91),%m.m,$chr(93)) $mask(nick!user@host.domain.com,%m.m) | inc %m.m } 
    ; text options 
    a 13 $readini($fp,text,lines) 
    a 15 $readini($fp,text,seconds)
    a 17 $readini($fp,text,ignoretime)
    did $iif($readini($fp,text,inform),-c,-u) $dname 19
    did $iif($readini($fp,text,informlamer),-c,-u) $dname 20
    var %t.i = $readini($fp,text,ignore)
    did $iif(p isin %t.i,-c,-u) $dname 25 | did $iif(c isin %t.i,-c,-u) $dname 26 | did $iif(n isin %t.i,-c,-u) $dname 27
    did $iif(t isin %t.i,-c,-u) $dname 28 | did $iif(i isin %t.i,-c,-u) $dname 29 | did $iif(d isin %t.i,-c,-u) $dname 30
    a 31 $readini($fp,botnettext,lines) 
    a 33 $readini($fp,botnettext,seconds) 
    a 35 $readini($fp,botnettext,ignoretime)
    did $iif($readini($fp,botnettext,inform),-c,-u) $dname 37
    ; notice
    a 38 $readini($fp,notice,lines) 
    a 39 $readini($fp,notice,seconds)
    a 40 $readini($fp,notice,ignoretime)
    did $iif($readini($fp,notice,inform),-c,-u) $dname 41
    did $iif($readini($fp,notice,informlamer),-c,-u) $dname 42
    var %n.i = $readini($fp,notice,ignore)
    did $iif(p isin %n.i,-c,-u) $dname 47 | did $iif(c isin %n.i,-c,-u) $dname 48 | did $iif(n isin %n.i,-c,-u) $dname 49
    did $iif(t isin %n.i,-c,-u) $dname 50 | did $iif(i isin %n.i,-c,-u) $dname 51 | did $iif(d isin %n.i,-c,-u) $dname 52
    a 53 $readini($fp,botnetnotice,lines) 
    a 56 $readini($fp,botnetnotice,seconds) 
    a 57 $readini($fp,botnetnotice,ignoretime)
    did $iif($readini($fp,botnetnotice,inform),-c,-u) $dname 59
    ; ctcp
    a 60 $readini($fp,ctcp,lines) 
    a 61 $readini($fp,ctcp,seconds)
    a 62 $readini($fp,ctcp,ignoretime)
    did $iif($readini($fp,ctcp,inform),-c,-u) $dname 63
    did $iif($readini($fp,ctcp,informlamer),-c,-u) $dname 64
    var %ctcp.i = $readini($fp,ctcp,ignore)
    did $iif(p isin %ctcp.i,-c,-u) $dname 69 | did $iif(c isin %ctcp.i,-c,-u) $dname 70 | did $iif(n isin %ctcp.i,-c,-u) $dname 71
    did $iif(t isin %ctcp.i,-c,-u) $dname 72 | did $iif(i isin %ctcp.i,-c,-u) $dname 73 | did $iif(d isin %ctcp.i,-c,-u) $dname 74
    a 75 $readini($fp,botnetctcp,lines) 
    a 78 $readini($fp,botnetctcp,seconds) 
    a 79 $readini($fp,botnetctcp,ignoretime)
    did $iif($readini($fp,botnetctcp,inform),-c,-u) $dname 81
    ; invite
    a 82 $readini($fp,invite,lines) 
    a 83 $readini($fp,invite,seconds)
    a 84 $readini($fp,invite,ignoretime)
    did $iif($readini($fp,invite,inform),-c,-u) $dname 85
    did $iif($readini($fp,invite,informlamer),-c,-u) $dname 86
    var %invite.i = $readini($fp,invite,ignore)
    did $iif(p isin %invite.i,-c,-u) $dname 91 | did $iif(c isin %invite.i,-c,-u) $dname 92 | did $iif(n isin %invite.i,-c,-u) $dname 93
    did $iif(t isin %invite.i,-c,-u) $dname 94 | did $iif(i isin %invite.i,-c,-u) $dname 95 | did $iif(d isin %invite.i,-c,-u) $dname 96
    a 97 $readini($fp,botnetinvite,lines) 
    a 100 $readini($fp,botnetinvite,seconds) 
    a 101 $readini($fp,botnetinvite,ignoretime)
    did $iif($readini($fp,botnetinvite,inform),-c,-u) $dname 103
    ; dcc
    a 104 $readini($fp,dcc,lines) 
    a 105 $readini($fp,dcc,seconds)
    a 106 $readini($fp,dcc,ignoretime)
    did $iif($readini($fp,dcc,inform),-c,-u) $dname 107
    did $iif($readini($fp,dcc,informlamer),-c,-u) $dname 108
    var %dcc.i = $readini($fp,dcc,ignore)
    did $iif(p isin %dcc.i,-c,-u) $dname 113 | did $iif(c isin %dcc.i,-c,-u) $dname 114 | did $iif(n isin %dcc.i,-c,-u) $dname 115
    did $iif(t isin %dcc.i,-c,-u) $dname 116 | did $iif(i isin %dcc.i,-c,-u) $dname 117 | did $iif(d isin %dcc.i,-c,-u) $dname 118
    a 119 $readini($fp,botnetdcc,lines) 
    a 122 $readini($fp,botnetdcc,seconds) 
    a 123 $readini($fp,botnetdcc,ignoretime)
    did $iif($readini($fp,botnetdcc,inform),-c,-u) $dname 125
    ; query
    a 126 $readini($fp,query,lines) 
    a 127 $readini($fp,query,seconds)
    a 128 $readini($fp,query,ignoretime)
    did $iif($readini($fp,query,inform),-c,-u) $dname 129
    did $iif($readini($fp,query,informlamer),-c,-u) $dname 130
    var %query.i = $readini($fp,query,ignore)
    did $iif(p isin %query.i,-c,-u) $dname 135 | did $iif(c isin %query.i,-c,-u) $dname 136 | did $iif(n isin %query.i,-c,-u) $dname 137
    did $iif(t isin %query.i,-c,-u) $dname 138 | did $iif(i isin %query.i,-c,-u) $dname 139 | did $iif(d isin %query.i,-c,-u) $dname 140
    did $iif($readini($fp,query,closequery),-c,-u) $dname 141
    a 142 $readini($fp,botnetquery,lines) 
    a 145 $readini($fp,botnetquery,seconds) 
    a 146 $readini($fp,botnetquery,ignoretime)
    did $iif($readini($fp,botnetquery,inform),-c,-u) $dname 148
    did $iif($readini($fp,botnetquery,closequery),-c,-u) $dname 149
    ; dcc chat
    a 150 $readini($fp,chat,lines) 
    a 151 $readini($fp,chat,seconds)
    a 152 $readini($fp,chat,ignoretime)
    did $iif($readini($fp,chat,inform),-c,-u) $dname 153
    did $iif($readini($fp,chat,informlamer),-c,-u) $dname 154
    var %chat.i = $readini($fp,chat,ignore)
    did $iif(p isin %chat.i,-c,-u) $dname 159 | did $iif(c isin %chat.i,-c,-u) $dname 160 | did $iif(n isin %chat.i,-c,-u) $dname 161
    did $iif(t isin %chat.i,-c,-u) $dname 162 | did $iif(i isin %chat.i,-c,-u) $dname 163 | did $iif(d isin %chat.i,-c,-u) $dname 164
    did $iif($readini($fp,chat,closechat),-c,-u) $dname 165 
    ; enabled/disabled checks
    e text 174 | e notice 178 | e ctcp 185 | e invite 193 | e dcc 199 | e query 207 | e chat 212
    e botnettext 175 | e botnetnotice 182 | e botnetctcp 188 | e botnetinvite 194 | e botnetdcc 200 | e botnetquery 208
    ; whats enabled
    did $iif($did(174).state == 1,-e,-b) $dname 13,14,15,16,17,18,19,20,24,25,26,27,28,29,30
    did $iif($did(175).state == 1,-e,-b) $dname 31,32,33,35,36,176,37
    did $iif($did(178).state == 1,-e,-b) $dname 38,43,39,44,40,45,41,42,46,47,48,49,50,51,52
    did $iif($did(182).state == 1,-e,-b) $dname 53,181,56,180,57,179,59
    did $iif($did(185).state == 1,-e,-b) $dname 60,65,61,184,62,183,63,64,68,69,70,71,72,73,74 
    did $iif($did(188).state == 1,-e,-b) $dname 75,76,78,187,79,186,81
    did $iif($did(193).state == 1,-e,-b) $dname 82,87,83,191,84,189,85,86,90,91,92,93,94,95,96
    did $iif($did(194).state == 1,-e,-b) $dname 97,98,100,192,101,190,103
    did $iif($did(199).state == 1,-e,-b) $dname 104,109,105,197,106,195,107,108,112,113,114,115,116,117,118
    did $iif($did(200).state == 1,-e,-b) $dname 119,120,122,198,123,196,125
    did $iif($did(207).state == 1,-e,-b) $dname 126,205,127,203,128,201,129,130,134,135,136,137,138,139,140,141
    did $iif($did(208).state == 1,-e,-b) $dname 142,206,145,204,146,202,148,149
    did $iif($did(212).state == 1,-e,-b) $dname 150,211,151,210,152,209,153,154,158,159,160,161,162,163,164,165
  }
  if ($devent == sclick) {
    ; email link
    if ($did == 173) .run "mailto:moonman@oh-snap.org?subject=Flood protection addon"
    ; trigger checkboxes
    if ($did == 174) did $iif($did(174).state == 1,-e,-b) $dname 13,14,15,16,17,18,19,20,24,25,26,27,28,29,30
    if ($did == 175) did $iif($did(175).state == 1,-e,-b) $dname 31,32,33,35,36,176,37
    if ($did == 178) did $iif($did(178).state == 1,-e,-b) $dname 38,43,39,44,40,45,41,42,46,47,48,49,50,51,52
    if ($did == 182) did $iif($did(182).state == 1,-e,-b) $dname 53,181,56,180,57,179,59
    if ($did == 185) did $iif($did(185).state == 1,-e,-b) $dname 60,65,61,184,62,183,63,64,68,69,70,71,72,73,74 
    if ($did == 188) did $iif($did(188).state == 1,-e,-b) $dname 75,76,78,187,79,186,81
    if ($did == 193) did $iif($did(193).state == 1,-e,-b) $dname 82,87,83,191,84,189,85,86,90,91,92,93,94,95,96
    if ($did == 194) did $iif($did(194).state == 1,-e,-b) $dname 97,98,100,192,101,190,103
    if ($did == 199) did $iif($did(199).state == 1,-e,-b) $dname 104,109,105,197,106,195,107,108,112,113,114,115,116,117,118
    if ($did == 200) did $iif($did(200).state == 1,-e,-b) $dname 119,120,122,198,123,196,125
    if ($did == 207) did $iif($did(207).state == 1,-e,-b) $dname 126,205,127,203,128,201,129,130,134,135,136,137,138,139,140,141
    if ($did == 208) did $iif($did(208).state == 1,-e,-b) $dname 142,206,145,204,146,202,148,149
    if ($did == 212) did $iif($did(212).state == 1,-e,-b) $dname 150,211,151,210,152,209,153,154,158,159,160,161,162,163,164,165
    ; default button
    if ($did == 177) {
      did -co $dname 22 1 [2] *!*@host.domain.com
      e text 174 | e notice 178 | e ctcp 185 | e invite 193 | e dcc 199 | e query 207 | e chat 212
      e botnettext 175 | e botnetnotice 182 | e botnetctcp 188 | e botnetinvite 194 | e botnetdcc 200 | e botnetquery 208
      var %tk = 12.10.30.25.10.30.5.10.30.10.10.30.5.10.30.8.10.30.5.10.30.8.10.30.5.10.30.8.10.30.12.10.30.25.10.30.50.10.30
      var %tk2 = 13.15.17.31.33.35.38.39.40.53.56.57.60.61.62.75.78.79.82.83.84.97.100.101.104.105.106.119.122.123.126.127.128.142.145.146.150.151.152
      var %cnt = 1
      while ($gettok(%tk2,%cnt,46)) { did -ra $dname $ifmatch $gettok(%tk,%cnt,46) | inc %cnt }
      did -c $dname 26,49,72,95,115,118,135,164,19,37,41,59,63,81,85,103,107,125,129,141,148,149,153,165,174,175,178,182,185,188,193,194,199,200,207,208,212
      did -u $dname 25,27,28,29,30,47,48,50,51,52,69,70,71,73,74,91,92,93,94,96,113,114,116,117,136,137,138,139,140,159,160,161,162,163,20,42,64,86,108,130,154
      did -e $dname 13,14,15,16,17,18,19,20,24,25,26,27,28,29,30,31,32,33,35,36,176,37,38,43,39,44,40,45,41,42,46,47,48,49,50,51,52,53,181,56,180,57,179,59
      did -e $dname 60,65,61,184,62,183,63,64,68,69,70,71,72,73,74,75,76,78,187,79,186,81,82,87,83,191,84,189,85,86,90,91,92,93,94,95,96,97,98,100,192,101,190,103
      did -e $dname 104,109,105,197,106,195,107,108,112,113,114,115,116,117,118,119,120,122,198,123,196,125,126,205,127,203,128,201,129,130,134,135,136,137,138,139,140,141
      did -e $dname 142,206,145,204,146,202,148,149,150,211,151,210,152,209,153,154,158,159,160,161,162,163,164,165
    }    
    ; hold on to your testicles, cause here comes the big ol' ok button
    if ($did == 8) {
      f address mask $remove($gettok($did(22),1,32),$chr(91),$chr(93))
      f text enabled $iif($did(174).state == 1,$true,$false)
      f notice enabled $iif($did(178).state == 1,$true,$false)
      f ctcp enabled $iif($did(185).state == 1,$true,$false)
      f invite enabled $iif($did(193).state == 1,$true,$false)
      f dcc enabled $iif($did(199).state == 1,$true,$false)
      f query enabled $iif($did(207).state == 1,$true,$false)
      f chat enabled $iif($did(212).state == 1,$true,$false)
      f botnettext enabled $iif($did(175).state == 1,$true,$false)
      f botnetnotice enabled $iif($did(182).state == 1,$true,$false)
      f botnetctcp enabled $iif($did(188).state == 1,$true,$false)
      f botnetinvite enabled $iif($did(194).state == 1,$true,$false)
      f botnetdcc enabled $iif($did(200).state == 1,$true,$false)
      f botnetquery enabled $iif($did(208).state == 1,$true,$false)
      f text lines $did(13) | f text seconds $did(15) | f text ignoretime $did(17)
      f text inform $iif($did(19).state == 1,$true,$false) | f text informlamer $iif($did(20).state == 1,$true,$false)
      var %g 
      if ($did(25).state == 1) %g = p  
      if ($did(26).state == 1) %g = %g $+ c 
      if ($did(27).state == 1) %g = %g $+ n
      if ($did(28).state == 1) %g = %g $+ t 
      if ($did(29).state == 1) %g = %g $+ i 
      if ($did(30).state == 1) %g = %g $+ d
      f text ignore $iif(%g,%g,$false)
      f notice lines $did(38) | f notice seconds $did(39) | f notice ignoretime $did(40)
      f notice inform $iif($did(41).state == 1,$true,$false) | f notice informlamer $iif($did(42).state == 1,$true,$false)
      var %g 
      if ($did(47).state == 1) %g = p  
      if ($did(48).state == 1) %g = %g $+ c 
      if ($did(49).state == 1) %g = %g $+ n
      if ($did(50).state == 1) %g = %g $+ t 
      if ($did(51).state == 1) %g = %g $+ i 
      if ($did(52).state == 1) %g = %g $+ d
      f notice ignore $iif(%g,%g,$false)
      f ctcp lines $did(60) | f ctcp seconds $did(61) | f ctcp ignoretime $did(62)
      f ctcp inform $iif($did(63).state == 1,$true,$false) | f ctcp informlamer $iif($did(64).state == 1,$true,$false)
      var %g 
      if ($did(69).state == 1) %g = p  
      if ($did(70).state == 1) %g = %g $+ c 
      if ($did(71).state == 1) %g = %g $+ n
      if ($did(72).state == 1) %g = %g $+ t 
      if ($did(73).state == 1) %g = %g $+ i 
      if ($did(74).state == 1) %g = %g $+ d
      f ctcp ignore $iif(%g,%g,$false)
      f invite lines $did(82) | f invite seconds $did(83) | f invite ignoretime $did(84)
      f invite inform $iif($did(85).state == 1,$true,$false) | f invite informlamer $iif($did(86).state == 1,$true,$false)
      var %g 
      if ($did(91).state == 1) %g = p  
      if ($did(92).state == 1) %g = %g $+ c 
      if ($did(93).state == 1) %g = %g $+ n
      if ($did(94).state == 1) %g = %g $+ t 
      if ($did(95).state == 1) %g = %g $+ i 
      if ($did(96).state == 1) %g = %g $+ d
      f invite ignore $iif(%g,%g,$false)
      f dcc lines $did(104) | f dcc seconds $did(105) | f dcc ignoretime $did(106)
      f dcc inform $iif($did(107).state == 1,$true,$false) | f dcc informlamer $iif($did(108).state == 1,$true,$false)
      var %g 
      if ($did(113).state == 1) %g = p  
      if ($did(114).state == 1) %g = %g $+ c 
      if ($did(115).state == 1) %g = %g $+ n
      if ($did(116).state == 1) %g = %g $+ t 
      if ($did(117).state == 1) %g = %g $+ i 
      if ($did(118).state == 1) %g = %g $+ d
      f dcc ignore $iif(%g,%g,$false)
      f query lines $did(126) | f query seconds $did(127) | f query ignoretime $did(128)
      f query inform $iif($did(129).state == 1,$true,$false) | f query informlamer $iif($did(130).state == 1,$true,$false)
      var %g 
      if ($did(135).state == 1) %g = p  
      if ($did(136).state == 1) %g = %g $+ c 
      if ($did(137).state == 1) %g = %g $+ n
      if ($did(138).state == 1) %g = %g $+ t 
      if ($did(139).state == 1) %g = %g $+ i 
      if ($did(140).state == 1) %g = %g $+ d
      f query ignore $iif(%g,%g,$false)
      f query closequery $iif($did(141).state == 1,$true,$false)
      f chat lines $did(150) | f chat seconds $did(151) | f chat ignoretime $did(152)
      f chat inform $iif($did(153).state == 1,$true,$false) | f chat informlamer $iif($did(154).state == 1,$true,$false)
      var %g 
      if ($did(159).state == 1) %g = p  
      if ($did(160).state == 1) %g = %g $+ c 
      if ($did(161).state == 1) %g = %g $+ n
      if ($did(162).state == 1) %g = %g $+ t 
      if ($did(163).state == 1) %g = %g $+ i 
      if ($did(164).state == 1) %g = %g $+ d
      f chat ignore $iif(%g,%g,$false) | f chat closechat $iif($did(165).state == 1,$true,$false)
      f botnettext lines $did(31) | f botnettext seconds $did(33)
      f botnettext ignoretime $did(35) | f botnettext inform $iif($did(37).state == 1,$true,$false)
      f botnetnotice lines $did(53) | f botnetnotice seconds $did(56)
      f botnetnotice ignoretime $did(57) | f botnetnotice inform $iif($did(59).state == 1,$true,$false)
      f botnetctcp lines $did(75) | f botnetctcp seconds $did(78)
      f botnetctcp ignoretime $did(79) | f botnetctcp inform $iif($did(81).state == 1,$true,$false)
      f botnetinvite lines $did(97) | f botnetinvite seconds $did(100)
      f botnetinvite ignoretime $did(101) | f botnetinvite inform $iif($did(103).state == 1,$true,$false)
      f botnetdcc lines $did(119) | f botnetdcc seconds $did(122)
      f botnetdcc ignoretime $did(123) | f botnetdcc inform $iif($did(125).state == 1,$true,$false)
      f botnetquery lines $did(142) | f botnetquery seconds $did(145)
      f botnetquery ignoretime $did(146) | f botnetquery inform $iif($did(148).state == 1,$true,$false)
      f botnetquery closequery $iif($did(149).state == 1,$true,$false)
    }
  }
}
; space saver local aliases
alias -l f .writeini $fp $1-
alias -l a did -a $dname $1-
alias -l d did -o $dname $1-
alias -l u did $+(-,$iif($did($did).state == 1,u,c),o) $dname $did $1
alias -l v did $+(-,$iif($did($1).state == 1,u,c),o) $dname $1 $2
alias -l e did $iif($readini($fp,$1,enabled),-c,-u) $dname $2
alias -l fp return $+(",$scriptdirprotection.ini,")