Dream-Script — File Browser

Dream-Scriptv1.1a / Dream-Scriptv1.1a / Dream-Script_v1.1a / oppstatsfinal / OPPQueryBlocker / oppstfu.mrc

oppstfu.mrc — 33.57 KB — Download this file

menu channel,nicklist,menubar,status,query {
  -
  OPPStats Final
  .OPPQuery Blocker
  ..Query Blocker an/aus:stfu
  ..-
  ..Query Blocker Einstellungen:stfuconf
}

menu nicklist {
  -
  OPPStats Final
  .OPPQuery Blocker
  ..$iif($ial($1,0),hinzufĂĽgen)
  ...erlaube
  ....$1 $+ !*@*:writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini masks_allow $1 $+ !*@* $ctime | stfuhash
  ....$address($1,3):writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini masks_allow $address($1,3) $ctime | stfuhash
  ....$address($1,1):writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini masks_allow $address($1,1) $ctime | stfuhash
  ....$address($1,4):writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini masks_allow $address($1,4) $ctime | stfuhash
  ....$address($1,2):writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini masks_allow $address($1,2) $ctime | stfuhash
  ...blocke
  ....$1 $+ !*@*:writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini masks_block $1 $+ !*@* $ctime | stfuhash
  ....$address($1,3):writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini masks_block $address($1,3) $ctime | stfuhash
  ....$address($1,1):writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini masks_block $address($1,1) $ctime | stfuhash
  ....$address($1,4):writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini masks_block $address($1,4) $ctime | stfuhash
  ....$address($1,2):writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini masks_block $address($1,2) $ctime | stfuhash
}

; mother of all code
on ^*:open:?:{
  if (%stfu) {
    ; allow masks
    if ($hfind(stfu_masks_allow,$fulladdress,1,W).data) {
      if (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messageallow) != -) && ((%stfuflood [ $+ [ $cid ] ] == $null) || (%stfuflood [ $+ [ $cid ] ] <= 60))) { inc -z %stfuflood $+ $cid 20 | $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messagetype) == 1,.notice,.msg) $nick $readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messageallow) }
      if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,blockallow) == 1) {
        haltdef
        if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,ignore) == 1) { .ignore -pu $+ [ $readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,ignoreseconds) ] $nick 3 }
        if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoallow) == 1) { if (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 0) && ($window(@oppstatsfinal/OPPQueryBlocker) == $null)) { window -ek[0]n @oppstatsfinal/OPPQueryBlocker } | echo $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 1,-at [ OPP Query Blocker ],-mt @oppstatsfinal/OPPQueryBlocker) Geblockte Nachricht von $nick ( $+ $fulladdress $+ ), $hget(stfu_masks_allow,$hfind(stfu_masks_allow,$fulladdress,1,W).data) (allow): $1- }
      }
      return
    }

    ; allow channels
    var %i 1, %j $comchan($nick,0)
    while (%i <= %j) {
      if ($hfind(stfu_channels_allow,$comchan($nick,%i),1).data) {
        if ((($nick isop $comchan($nick,%i)) && ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini, [ $comchan($nick,%i) ] $+ _allow,op) == 1)) || (($nick isvoice $comchan($nick,%i)) && ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini, [ $comchan($nick,%i) ] $+ _allow,voice) == 1)) || (($nick isreg $comchan($nick,%i)) && ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini, [ $comchan($nick,%i) ] $+ _allow,regular) == 1))) {
          if (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messageallow) != -) && ((%stfuflood [ $+ [ $cid ] ] == $null) || (%stfuflood [ $+ [ $cid ] ] <= 60))) { inc -z %stfuflood $+ $cid 20 | $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messagetype) == 1,.notice,.msg) $nick $readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messageallow) }
          if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,blockallow) == 1) {
            haltdef
            if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,ignore) == 1) { .ignore -pu $+ [ $readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,ignoreseconds) ] $nick 3 }
            if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoallow) == 1) { if (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 0) && ($window(@oppstatsfinal/OPPQueryBlocker) == $null)) { window -ek[0]n @oppstatsfinal/OPPQueryBlocker } | echo $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 1,-at [ OPP Query Blocker ],-mt @oppstatsfinal/OPPQueryBlocker) Geblockte Nachricht von $nick ( $+ $fulladdress $+ ), auf $comchan($nick,%i) (allow): $1- }
          }
          return
        }
      }
      inc %i
    }

    ; block masks
    if ($hfind(stfu_masks_block,$fulladdress,1,W).data) {
      if (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messageblock) != -) && ((%stfuflood [ $+ [ $cid ] ] == $null) || (%stfuflood [ $+ [ $cid ] ] <= 60))) { inc -z %stfuflood $+ $cid 20 | $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messagetype) == 1,.notice,.msg) $nick $readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messageblock) }
      if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,blockblock) == 1) {
        haltdef
        if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,ignore) == 1) { .ignore -pu $+ [ $readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,ignoreseconds) ] $nick 3 }
        if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoblock) == 1) { if (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 0) && ($window(@oppstatsfinal/OPPQueryBlocker) == $null)) { window -ek[0]n @oppstatsfinal/OPPQueryBlocker } | echo $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 1,-at [ OPP Query Blocker ],-mt @oppstatsfinal/OPPQueryBlocker) Geblockte Nachricht von $nick ( $+ $fulladdress $+ ), $hget(stfu_masks_block,$hfind(stfu_masks_block,$fulladdress,1,W).data) (block): $1- }
      }
      return
    }

    ; block channels
    var %i 1, %j $comchan($nick,0)
    while (%i <= %j) {
      if ($hfind(stfu_channels_block,$comchan($nick,%i),1).data) {
        if ((($nick isop $comchan($nick,%i)) && ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini, [ $comchan($nick,%i) ] $+ _block,op) == 1)) || (($nick isvoice $comchan($nick,%i)) && ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini, [ $comchan($nick,%i) ] $+ _block,voice) == 1)) || (($nick isreg $comchan($nick,%i)) && ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini, [ $comchan($nick,%i) ] $+ _block,regular) == 1))) {
          if (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messageblock) != -) && ((%stfuflood [ $+ [ $cid ] ] == $null) || (%stfuflood [ $+ [ $cid ] ] <= 60))) { inc -z %stfuflood $+ $cid 20 | $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messagetype) == 1,.notice,.msg) $nick $readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messageblock) }
          if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,blockblock) == 1) {
            haltdef
            if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,ignore) == 1) { .ignore -pu $+ [ $readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,ignoreseconds) ] $nick 3 }
            if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoblock) == 1) { if (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 0) && ($window(@oppstatsfinal/OPPQueryBlocker) == $null)) { window -ek[0]n @oppstatsfinal/OPPQueryBlocker } | echo $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 1,-at [ OPP Query Blocker ],-mt @oppstatsfinal/OPPQueryBlocker) Geblockte Nachricht von $nick ( $+ $fulladdress $+ ), on $comchan($nick,%i) (block): $1- }
          }
          return
        }
      }
      inc %i
    }

    ; unknown
    if (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,query) == 1) && (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,queryactive) == 0) || ($appactive))) {
      ; if (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,query) == 1) && ($appactive)) {
      haltdef
      if (!$dialog(stfu_query_ $+ $nick)) {
        if (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messageunknown) != -) && ((%stfuflood [ $+ [ $cid ] ] == $null) || (%stfuflood [ $+ [ $cid ] ] <= 60))) { inc -z %stfuflood $+ $cid 10 | $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messagetype) == 1,.notice,.msg) $nick Query pending... }
        set %stfu_query_ [ $+ [ $nick ] $+ ] _address $fulladdress
        stfuquery $nick
      }
      var %i 1
      while (%stfu_query_ [ $+ [ $nick ] $+ [ %i ] ] != $null) { inc %i }
      set %stfu_query_ [ $+ [ $nick ] $+ [ %i ] ] $1-
    }
    else {
      if (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messageunknown) != -) && ((%stfuflood [ $+ [ $cid ] ] == $null) || (%stfuflood [ $+ [ $cid ] ] <= 60))) { inc -z %stfuflood $+ $cid 20 | $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messagetype) == 1,.notice,.msg) $nick $readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messageunknown) }
      if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,blockunknown) == 1) {
        haltdef
        if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,ignore) == 1) { .ignore -pu $+ [ $readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,ignoreseconds) ] $nick 3 }
        if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echounknown) == 1) { if (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 0) && ($window(@oppstatsfinal/OPPQueryBlocker) == $null)) { window -ek[0]n @oppstatsfinal/OPPQueryBlocker } | echo $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 1,-at [ OPP Query Blocker ],-mt @oppstatsfinal/OPPQueryBlocker) Geblockte Nachricht von $nick ( $+ $fulladdress $+ ): $1- }
      }
    }
  }
}

; stfu alias
alias stfu {
  if (%stfu == $null) {
    if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,automaticoff)) {
      echo -a [ OPP Query Blocker ] angeschaltet fĂĽr $duration($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,automaticoffseconds))
      set -u $+ [ $readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,automaticoffseconds) ] %stfu 1
    }
    else {
      echo -a [ OPP Query Blocker ] angeschaltet
      set %stfu 1
    }
  }
  else {
    echo -a [ OPP Query Blocker ] abgeschaltet
    unset %stfu
  }
}

; stfuconf alias
alias stfuconf { dialog -m stfu stfu_dialog }

; stfuhash alias
alias stfuhash {
  if ($hget(stfu_masks_allow)) { hfree stfu_masks_allow }
  hmake stfu_masks_allow 100
  var %i 1, %j $ini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,masks_allow,0)
  while (%i <= %j) { hadd stfu_masks_allow %i $ini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,masks_allow,%i) | inc %i }

  if ($hget(stfu_masks_block)) { hfree stfu_masks_block }
  hmake stfu_masks_block 100
  var %i 1, %j $ini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,masks_block,0)
  while (%i <= %j) { hadd stfu_masks_block %i $ini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,masks_block,%i) | inc %i }

  if ($hget(stfu_channels_allow)) { hfree stfu_channels_allow }
  hmake stfu_channels_allow 100
  var %i 1, %j $ini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,channels_allow,0)
  while (%i <= %j) { hadd stfu_channels_allow %i $ini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,channels_allow,%i) | inc %i }

  if ($hget(stfu_channels_block)) { hfree stfu_channels_block }
  hmake stfu_channels_block 100
  var %i 1, %j $ini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,channels_block,0)
  while (%i <= %j) { hadd stfu_channels_block %i $ini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,channels_block,%i) | inc %i }
}

; dialog
dialog stfu_dialog {
  title "OPP Query Blocker"
  size -1 -1 212 178
  option dbu
  button "Fertig", 1, 2 164 37 12, default ok

  ; masks
  tab "Masks", 100, 2 0 207 160
  text "Erlaubte", 101, 7 16 75 8, tab 100 center
  list 102, 7 26 75 100, tab 100 size
  button "HinzufĂĽgen...", 103, 8 129 37 10, tab 100
  button "Löschen...", 104, 45 147 37 10, disable tab 100
  text "Geblockte", 105, 129 16 75 8, tab 100 center
  list 106, 129 26 75 100, tab 100 size
  button "HinzufĂĽgen...", 107, 130 129 37 10, tab 100
  button "Löschen...", 108, 168 147 37 10, disable tab 100
  text "version 0.1b", 109, 175 169 35 8, tab 100 center

  ; channels
  tab "Channels", 200
  text "Erlaubte", 201, 7 16 75 8, tab 200 center
  list 202, 7 26 75 100, tab 200 size
  button "HinzufĂĽgen...", 203, 8 129 37 10, tab 200
  button "Löschen...", 204, 45 147 37 10, disable tab 200
  text "Geblockte", 205, 129 16 75 8, tab 200 center
  list 206, 129 26 75 100, tab 200 size
  button "HinzufĂĽgen...", 207, 130 129 37 10, tab 200
  button "Löschen...", 208, 168 147 37 10, disable tab 200
  box "Erlaubte", 209, 89 24 34 35, tab 200
  check "Op", 210, 92 30 28 10, disable tab 200
  check "Voice", 211, 92 39 28 10, disable tab 200
  check "Normal", 212, 92 48 28 10, disable tab 200
  box "Geblockte", 213, 89 91 34 35, tab 200
  check "Op", 214, 92 97 28 10, disable tab 200
  check "Voice", 215, 92 106 28 10, disable tab 200
  check "Normal", 216, 92 115 28 10, disable tab 200

  ; settings
  tab "Einstellungen", 300
  text "", 301, 41 166 168 8, tab 300 center
  check "Ign. geblockte Queries fĂĽr", 302, 8 17 73 10, tab 300
  edit "", 303, 81 17 22 10, disable tab 300
  text "sekunden", 304, 104 18 25 8, tab 300
  check "Automatisch abschalten nach", 305, 8 28 85 10, tab 300
  edit "", 306, 93 28 22 10, disable tab 300
  text "sekunden", 307, 116 29 25 8, tab 300
  check "Zeigt Nachricht beim Blocken im aktiven Fenster", 327, 8 39 126 10, tab 300
  check "Nachfrage nach unbekannten Masks und Channels...", 328, 8 50 126 10, tab 300
  check "...nur wenn mIRC die Aktive Anwendung ist", 329, 8 58 126 10, tab 300
  box "Block Queries von...", 308, 8 68 96 36, tab 300
  check "erlaubten Masks und Chans", 309, 12 74 86 10, tab 300
  check "unerlaubten Masks und Chans", 310, 12 83 86 10, tab 300
  check "unbekannten Masks und Chans", 311, 12 92 86 10, tab 300
  box "Nachricht beim blocken von...", 312, 108 68 96 36, tab 300
  check "erlaubten Masks und Chans", 313, 112 74 86 10, tab 300
  check "unerlaubten Masks und Chans", 314, 112 83 86 10, tab 300
  check "unbekannten Masks und Chans", 315, 112 92 86 10, tab 300
  box "Block Nachrichten werden gesendet...", 316, 8 105 196 50, tab 300
  text "...als", 317, 11 113 34 8, tab 300
  radio "/notice", 318, 30 113 27 7, tab 300
  radio "/msg", 320, 57 113 23 7, tab 300
  text "fĂĽr erlaubte User:", 321, 11 123 53 8, tab 300
  edit "", 322, 64 122 137 10, tab 300 autohs
  text "fĂĽr unerlaubte User:", 323, 11 133 53 8, tab 300
  edit "", 324, 64 132 137 10, tab 300 autohs
  text "fĂĽr unbekannte User:", 325, 11 143 53 8, tab 300
  edit "", 326, 64 142 137 10, tab 300 autohs
}

; init
on *:dialog:stfu:init:*:{
  if (!$exists(oppstatsfinal/OPPQueryBlocker/oppquery.ini)) {
    echo -a [ OPP Query Blocker ] oppquery.ini wurde nicht gefunden, es wird eine neue mit voreinstellungen erzeugt...
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings ignore 1
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings ignoreseconds 3600
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings automaticoff 0
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings automaticoffseconds 7200
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings blockallow 0
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings blockblock 1
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings blockunknown 1
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings echoactive 0
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings echoallow 1
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings echoblock 1
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings echounknown 1
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings messagetype 2
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings messageallow Query akzeptiert. :)
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings messageblock Query nich akzeptiert! :(
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings messageunknown Du bist nicht auf meiner Query Akzeptier Liste, sprich mich im Chan an!!!
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings query 0
  }

  var %i 1, %j $ini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,masks_allow,0)
  while (%i <= %j) { did -a $dname 102 $ini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,masks_allow,%i) | inc %i }

  var %i 1, %j $ini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,masks_block,0)
  while (%i <= %j) { did -a $dname 106 $ini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,masks_block,%i) | inc %i }

  var %i 1, %j $ini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,channels_allow,0)
  while (%i <= %j) { did -a $dname 202 $ini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,channels_allow,%i) | inc %i }

  var %i 1, %j $ini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,channels_block,0)
  while (%i <= %j) { did -a $dname 206 $ini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,channels_block,%i) | inc %i }

  ; apply settings
  if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,ignore) == 1) { did -c $dname 302 | did -e $dname 303 }
  did -ar $dname 303 $readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,ignoreseconds)

  if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,automaticoff) == 1) { did -c $dname 305 | did -e $dname 306 }
  did -ar $dname 306 $readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,automaticoffseconds)

  if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 1) { did -c $dname 327 }

  if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,query) == 1) { did -c $dname 328 }

  if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,queryactive) == 1) { did -c $dname 329 }

  if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,blockallow) == 1) { did -c $dname 309 }
  if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,blockblock) == 1) { did -c $dname 310 }
  if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,blockunknown) == 1) { did -c $dname 311 }

  if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoallow) == 1) { did -c $dname 313 }
  if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoblock) == 1) { did -c $dname 314 }
  if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echounknown) == 1) { did -c $dname 315 }

  if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messagetype) == 1) { did -c $dname 318 } | else { did -c $dname 320 }

  did -ar $dname 322 $readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,n,settings,messageallow)
  did -ar $dname 324 $readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,n,settings,messageblock)
  did -ar $dname 326 $readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,n,settings,messageunknown)
}

; close
on *:dialog:stfu:close:*:{
  stfuhash
}

; masks
on *:dialog:stfu:sclick:102:{
  if ($did(102).seltext) {
    did -e $dname 104
  }
}

on *:dialog:stfu:sclick:103:{
  var %i $$?="Mask?"
  did -a $dname 102 %i
  writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini masks_allow %i $ctime
}

on *:dialog:stfu:sclick:104:{
  remini oppstatsfinal/OPPQueryBlocker/oppquery.ini masks_allow $did(102).seltext
  did -d $dname 102 $did(102).sel
  did -b $dname 104
}

on *:dialog:stfu:sclick:106:{
  if ($did(106).seltext) {
    did -e $dname 108
  }
}

on *:dialog:stfu:sclick:107:{
  var %i $$?="Mask?"
  did -a $dname 106 %i
  writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini masks_block %i $ctime
}

on *:dialog:stfu:sclick:108:{
  remini oppstatsfinal/OPPQueryBlocker/oppquery.ini masks_block $did(106).seltext
  did -d $dname 106 $did(106).sel
  did -b $dname 108
}

; channels
on *:dialog:stfu:sclick:202:{
  if ($did(202).seltext) {
    if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini, [ $did(202).seltext ] $+ _allow,op)) { did -c $dname 210 } | else { did -u $dname 210 }
    if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini, [ $did(202).seltext ] $+ _allow,voice)) { did -c $dname 211 } | else { did -u $dname 211 }
    if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini, [ $did(202).seltext ] $+ _allow,regular)) { did -c $dname 212 } | else { did -u $dname 212 }

    did -e $dname 204
    did -e $dname 210
    did -e $dname 211
    did -e $dname 212
  }
}

on *:dialog:stfu:sclick:203:{
  var %i $$?="Channel?"
  did -a $dname 202 %i
  writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini channels_allow %i $ctime
  writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ %i ] $+ _allow op 0
  writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ %i ] $+ _allow voice 0
  writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ %i ] $+ _allow regular 0
}

on *:dialog:stfu:sclick:204:{
  remini oppstatsfinal/OPPQueryBlocker/oppquery.ini channels_allow $did(202).seltext
  remini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ $did(202).seltext ] $+ _allow
  did -d $dname 202 $did(202).sel
  did -b $dname 204
  did -b $dname 210
  did -b $dname 211
  did -b $dname 212
}

on *:dialog:stfu:sclick:206:{
  if ($did(206).seltext) {
    if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini, [ $did(206).seltext ] $+ _block,op)) { did -c $dname 214 } | else { did -u $dname 214 }
    if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini, [ $did(206).seltext ] $+ _block,voice)) { did -c $dname 215 } | else { did -u $dname 215 }
    if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini, [ $did(206).seltext ] $+ _block,regular)) { did -c $dname 216 } | else { did -u $dname 216 }

    did -e $dname 208
    did -e $dname 214
    did -e $dname 215
    did -e $dname 216
  }
}

on *:dialog:stfu:sclick:207:{
  var %i $$?="Channel?"
  did -a $dname 206 %i
  writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini channels_block %i $ctime
  writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ %i ] $+ _block op 0
  writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ %i ] $+ _block voice 0
  writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ %i ] $+ _block regular 0
}

on *:dialog:stfu:sclick:208:{
  remini oppstatsfinal/OPPQueryBlocker/oppquery.ini channels_block $did(206).seltext
  remini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ $did(206).seltext ] $+ _block
  did -d $dname 206 $did(206).sel
  did -b $dname 208
  did -b $dname 214
  did -b $dname 215
  did -b $dname 216
}

on *:dialog:stfu:sclick:210:{
  if ($did(210).state) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ $did(202).seltext ] $+ _allow op 1
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ $did(202).seltext ] $+ _allow op 0
  }
}

on *:dialog:stfu:sclick:211:{
  if ($did(211).state) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ $did(202).seltext ] $+ _allow voice 1
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ $did(202).seltext ] $+ _allow voice 0
  }
}

on *:dialog:stfu:sclick:212:{
  if ($did(212).state) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ $did(202).seltext ] $+ _allow regular 1
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ $did(202).seltext ] $+ _allow regular 0
  }
}

on *:dialog:stfu:sclick:214:{
  if ($did(214).state) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ $did(206).seltext ] $+ _block op 1
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ $did(206).seltext ] $+ _block op 0
  }
}

on *:dialog:stfu:sclick:215:{
  if ($did(215).state) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ $did(206).seltext ] $+ _block voice 1
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ $did(206).seltext ] $+ _block voice 0
  }
}

on *:dialog:stfu:sclick:216:{
  if ($did(216).state) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ $did(206).seltext ] $+ _block regular 1
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini [ $did(206).seltext ] $+ _block regular 0
  }
}

; settings
on *:dialog:stfu:sclick:302:{
  if ($did(302).state) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings ignore 1
    did -e $dname 303
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings ignore 0
    did -b $dname 303
  }
}

on *:dialog:stfu:edit:303:{
  if ($did(303).text != $null) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings ignoreseconds $did(303).text
  }
}

on *:dialog:stfu:sclick:305:{
  if ($did(305).state) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings automaticoff 1
    did -e $dname 306
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings automaticoff 0
    did -b $dname 306
  }
}

on *:dialog:stfu:edit:306:{
  if ($did(306).text) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings automaticoffseconds $did(306).text
  }
}

on *:dialog:stfu:sclick:309:{
  if ($did(309).state) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings blockallow 1
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings blockallow 0
  }
}

on *:dialog:stfu:sclick:310:{
  if ($did(310).state) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings blockblock 1
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings blockblock 0
  }
}

on *:dialog:stfu:sclick:311:{
  if ($did(311).state) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings blockunknown 1
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings blockunknown 0
  }
}

on *:dialog:stfu:sclick:313:{
  if ($did(313).state) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings echoallow 1
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings echoallow 0
  }
}

on *:dialog:stfu:sclick:314:{
  if ($did(314).state) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings echoblock 1
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings echoblock 0
  }
}

on *:dialog:stfu:sclick:315:{
  if ($did(315).state) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings echounknown 1
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings echounknown 0
  }
}

on *:dialog:stfu:sclick:318:{
  writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings messagetype 1
}

on *:dialog:stfu:sclick:320:{
  writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings messagetype 2
}

on *:dialog:stfu:edit:322:{
  if ($did(322).text) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings messageallow $did(322).text
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings messageallow -
  }
}

on *:dialog:stfu:edit:324:{
  if ($did(324).text) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings messageblock $did(324).text
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings messageblock -
  }
}

on *:dialog:stfu:edit:326:{
  if ($did(326).text) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings messageunknown $did(326).text
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings messageunknown -
  }
}

on *:dialog:stfu:sclick:327:{
  if ($did(327).state) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings echoactive 1
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings echoactive 0
  }
}

on *:dialog:stfu:sclick:328:{
  if ($did(328).state) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings query 1
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings query 0
  }
}

on *:dialog:stfu:sclick:329:{
  if ($did(329).state) {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings queryactive 1
  }
  else {
    writeini oppstatsfinal/OPPQueryBlocker/oppquery.ini settings queryactive 0
  }
}

on *:load:{
  if ($version < 6) {
    echo -a Falsche mIRC Version, benutze mind. mIRC 6.0 oder höher...
    unload -rs $script
  }
  else {
    echo -a Loaded $script $+ .
    echo -a Zum löschen: "/unload -rs $script $+ ".
  }
}

on *:start:{
  echo -a [ OPP Query Blocker ] Loading...
  stfuhash
}

on *:unload:{
  echo -a Unloaded $script $+ .
  echo -a * Lösche alle temporären Files...
  unset %stfu*
  echo -a * ...fertig!
}

; 

alias stfuquery { dialog -m stfu_query_ $+ $1 stfu_query_dialog }

alias stfuquerytimeout {
  if (((%stfuflood [ $+ [ $cid ] ] == $null) || (%stfuflood [ $+ [ $cid ] ] <= 60))) { inc -z %stfuflood $+ $cid 10 | $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messagetype) == 1,.notice,.msg) $1 Query auto abgelehnt nach 60 Sekunden. }
  if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoblock) == 1) { if (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 0) && ($window(@oppstatsfinal/OPPQueryBlocker) == $null)) { window -ek[0]n @oppstatsfinal/OPPQueryBlocker } | echo $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 1,-at [ OPP Query Blocker ],-mt @oppstatsfinal/OPPQueryBlocker) Auto-rejected query with $1 ( $+ [ %stfu_query_ [ $+ [ $1 ] $+ ] _address ] $+ ) after sixty seconds. | var %i 1 | while (%stfu_query_ [ $+ [ $1 ] $+ [ %i ] ] != $null) { echo $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 1,-at [ OPP Query Blocker ],-mt @oppstatsfinal/OPPQueryBlocker) < $+ $1 $+ > %stfu_query_ [ $+ [ $1 ] $+ [ %i ] ] | inc %i } }
  unset %stfu_query_ [ $+ [ $1 ] $+ ] *
  dialog -x stfu_query_ $+ $1
}

; dialog
dialog stfu_query_dialog {
  title "OPP Query Blocker"
  size -1 -1 150 50
  option dbu
  text "-", 101, 2 3 145 8, center
  text "-", 102, 2 14 145 8, center
  text "-", 103, 2 25 145 8, center
  button "Ja", 104, 1 37 37 12, default ok
  button "Nein", 106, 112 37 37 12, cancel
  text "60", 105, 70 39 10 8, center
}

; init
on *:dialog:stfu_query_*:init:*:{
  var %nick $right($dname,-11)
  .timerstfu_query_ $+ %nick $+ 1 60 1 did -a $dname 105 $!calc($did( [ $dname ] ,105) - 1)
  .timerstfu_query_ $+ %nick $+ 2 1 62 stfuquerytimeout %nick
  did -a $dname 101 Accept query with %nick $+ ?
  did -a $dname 102 %stfu_query_ [ $+ [ %nick ] $+ ] _address
  var %i = 1, %j = $comchan(%nick,0), %k
  while (%i <= %j) { %k = %k $comchan(%nick,%i) | inc %i }
  did -a $dname 103 %k
}

; close
on *:dialog:stfu_query_*:close:*:{
  var %nick $right($dname,-11)
  unset %stfu_query_ [ $+ [ %nick ] $+ ] *
  .timerstfu_query_ $+ %nick $+ 1 off
  .timerstfu_query_ $+ %nick $+ 2 off
}

on *:dialog:stfu_query_*:sclick:104:{
  var %nick $right($dname,-11)
  query %nick
  var %i 1
  while (%stfu_query_ [ $+ [ %nick ] $+ [ %i ] ] != $null) { echo -mt %nick < $+ %nick $+ > %stfu_query_ [ $+ [ %nick ] $+ [ %i ] ] | inc %i }
  if (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messageunknown) != -) && ((%stfuflood [ $+ [ $cid ] ] == $null) || (%stfuflood [ $+ [ $cid ] ] <= 60))) { inc -z %stfuflood $+ $cid 10 | $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messagetype) == 1,.notice,.msg) %nick Query akzeptiert. }
  if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoblock) == 1) { if (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 0) && ($window(@oppstatsfinal/OPPQueryBlocker) == $null)) { window -ek[0]n @oppstatsfinal/OPPQueryBlocker } | echo $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 1,-at [ OPP Query Blocker ],-mt @oppstatsfinal/OPPQueryBlocker) Accepted query with %nick ( $+ [ %stfu_query_ [ $+ [ %nick ] $+ ] _address ] $+ )  }
}

on *:dialog:stfu_query_*:sclick:106:{
  var %nick $right($dname,-11)
  if (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messageunknown) != -) && ((%stfuflood [ $+ [ $cid ] ] == $null) || (%stfuflood [ $+ [ $cid ] ] <= 60))) { inc -z %stfuflood $+ $cid 10 | $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,messagetype) == 1,.notice,.msg) %nick Query abgelehnt. }
  if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,ignore) == 1) { .ignore -pu $+ [ $readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,ignoreseconds) ] $mask( [ %stfu_query_ [ $+ [ %nick ] $+ ] _address ] ,3) }
  if ($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoblock) == 1) { if (($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 0) && ($window(@oppstatsfinal/OPPQueryBlocker) == $null)) { window -ek[0]n @oppstatsfinal/OPPQueryBlocker } | echo $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 1,-at [ OPP Query Blocker ],-mt @oppstatsfinal/OPPQueryBlocker) Rejected query with %nick ( $+ [ %stfu_query_ [ $+ [ %nick ] $+ ] _address ] $+ ) | var %i 1 | while (%stfu_query_ [ $+ [ %nick ] $+ [ %i ] ] != $null) { echo $iif($readini(oppstatsfinal/OPPQueryBlocker/oppquery.ini,settings,echoactive) == 1,-at [ OPP Query Blocker ],-mt @oppstatsfinal/OPPQueryBlocker) < $+ %nick $+ > %stfu_query_ [ $+ [ %nick ] $+ [ %i ] ] | inc %i } }
}

; the end