[Script] Query Blocker

Adri

New Member
Hey.

Ich habe folgendes Scipt im Internet gefunden:
Code:
;******************************************
;*
;*          QueryManager
;*          Version: 2.2.12
;*          Author: Salz`
;*          Email: salzig@gmail.com
;*          Web: http://www.mircboard.de
;*          IRC: quakenet.org #mirc-scripting
;*          2007-05-04
;*
;******************************************
dialog QM {
  title "QueryManager [/QM] v2.2.12"
  size -1 -1 162 122
  option dbu
  tab "Configuration", 100, 3 -1 156 120
  box "Basic Configuration", 5, 5 16 150 43, tab 100
  check "Block all incoming messeges", 6, 63 25 78 10, tab 100 flat
  check "Use Whitelist", 7, 14 35 41 10, tab 100 flat
  check "Use Blacklist", 8, 14 25 43 10, tab 100 flat
  check "Accept all incoming messeges", 9, 63 35 83 10, tab 100 flat
  text "Auto Block messeges after:", 26, 14 48 70 8, tab 100
  edit "0", 27, 82 46 16 10, tab 100 autohs right
  text "sec.", 28, 100 48 13 8, tab 100
  button "Reset", 33, 113 71 37 12, tab 100 flat
  edit "", 34, 9 86 142 10, tab 100 autohs
  button "Change", 32, 73 71 37 12, tab 100 flat
  box "Edit Text", 30, 5 62 150 38, tab 100
  combo 31, 9 72 61 37, tab 100 size drop
  button "Ok", 2, 78 103 37 12, tab 100 flat ok
  button "Cancel", 3, 118 103 37 12, tab 100 flat cancel
  tab "White/Black List", 10
  box "Whitelist", 11, 5 15 150 49, tab 10
  list 12, 7 23 104 38, tab 10 size multsel
  button "Remove", 13, 114 49 37 12, tab 10 flat
  button "Edit", 14, 114 36 37 12, tab 10 flat
  button "Add", 15, 114 23 37 12, tab 10 flat
  box "Blacklist", 22, 5 66 150 49, tab 10
  list 19, 7 74 104 38, tab 10 size
  button "Add", 18, 114 74 37 12, tab 10 flat
  button "Edit", 20, 114 87 37 12, tab 10 flat
  button "Remove", 21, 114 100 37 12, tab 10 flat
  menu "&File", 600
  item "&Reset",620, 600
  item break, 1000
  item "&Unload",630, 600
  item break, 1001
  item "&Remove",640, 600
  item break, 1002
  item "&Close", 610, 600
  menu "&Info", 660
  item "&About", 670, 660
  item "&Support", 680, 660
}
on *:dialog:qm:init:0:{
  if ($qm.config(blockall)) did -c $dname 6
  if ($qm.config(allowall)) did -c $dname 9
  if ($qm.config(blacklist)) did -c $dname 8
  if ($qm.config(whitelist)) did -c $dname 7
  if ($qm.config(autoclose)) did -ra $dname 27 $ifmatch
  var %x = 0
  while (%x < $qm.text(0).title) {
    inc %x
    did -a $dname 31 $qm.text(%x).title
  }
  did -fc $dname 31 1
  did -ra $dname 34 $qm.text($did($dname,31))
  qm.list $dname
}
on *:dialog:qm:edit:27:{
  if ($did($dname,$did) isnum) { qm.config autoclose $ifmatch }
}
on *:dialog:qm:sclick:14:{
  var %know = $did($dname,12).sel
  if ($input(Please enter the nickname here:,e,edit nick from whitelist,$did($dname,12).seltext,)) {
    var %known = $ifmatch
    did -d $dname 12 %know
    did -a $dname 12 %known
    qm.white -r %know
    qm.white %known
  }
}
on *:dialog:qm:sclick:20:{
  var %know = $did($dname,19).sel
  if ($input(Please enter the nickname here:,e,edit nick from blacklist,$did($dname,19).seltext,)) {
    var %known = $ifmatch
    did -d $dname 19 %know
    did -a $dname 19 %known
    qm.white -r %know
    qm.white %known
  }
}
on *:dialog:qm:sclick:15:{
  qm.white $input(Please enter the nickname here:,e,add nick to whitelist,,)
  qm.list $dname
}
on *:dialog:qm:sclick:18:{
  qm.black $input(Please enter the nickname here:,e,add nick to blacklist,,)
  qm.list $dname
}
on *:dialog:qm:sclick:13:{
  qm.white -r $did($dname,12).seltext
  qm.list $dname
}
on *:dialog:qm:sclick:21:{
  qm.black -r $did($dname,19).seltext
  qm.list $dname
}
on *:dialog:qm:sclick:6:{
  qm.config blockall $did($dname,$did).state
}
on *:dialog:qm:sclick:7:{
  qm.config whitelist $did($dname,$did).state
}
on *:dialog:qm:sclick:8:{
  qm.config blacklist $did($dname,$did).state
}
on *:dialog:qm:sclick:9:{
  qm.config allowall $did($dname,$did).state
}
on *:dialog:qm:sclick:31:{
  did -ra $dname 34 $qm.text($did($dname,31))   
}
on *:dialog:qm:sclick:32:{
  qm.text $did($dname,31) $did($dname,34)
}
on *:dialog:qm:sclick:33:{
  qm.text -d $did($dname,31)
  did -ra $dname 34 $qm.text($did($dname,31))
}
on *:dialog:qm:sclick:25:{ run http://mircboard.de }
dialog qminform {
  title "Query"
  size -1 -1 160 71
  option dbu
  text "Name:", 2, 14 11 19 9, right
  box "Information", 3, 3 2 154 53
  text "$nick", 5, 35 11 119 8
  text "ComChan:", 4, 8 20 25 8
  text "$comchan", 6, 35 20 119 14
  button "allow", 1, 3 57 37 12, flat ok
  button "block", 7, 42 57 37 12, flat cancel
  button "blacklist", 8, 120 57 37 12, flat
  button "whitelist", 9, 81 57 37 12, flat
  text "Message:", 10, 8 35 25 8, right
  text "", 11, 35 35 119 17
}
on ^*:open:?:{
  if ($istok(-psybnc,$nick,32)) { echo -s $status }
  ;  echo $color(info2 text) -ts * Incomming query: $nick  - $target - $event - $fulladdress
  .timer -h 1 20 window -h $nick
  if (($qm.config(blacklist)) && ($qm.black($nick))) { 
    .msg $nick $qm.text(blacklist)
    .timer $+ $nick 1 20 close -m $nick 
    haltdef 
    halt
  }
  if (($qm.config(whitelist)) && ($qm.white($nick))) { 
    .msg $nick $qm.text(whitelist) 
    .timer -h 1 30 window -wa $nick
    return
  }
  if ($qm.config(allowall)) { 
    .timer -h 1 30 window -w $nick
    .msg $nick $qm.text(allow)
    return
  }
  if ($qm.config(blockall)) { 
    .msg $nick $qm.text(block)
    haltdef 
    return
  }
  else {
    .msg $nick $qm.text(wait)
    .timer -h 1 30 qm.inform $nick $strip($1-,burc)
  }
}
alias qm.inform { ; nick
  dialog -m $+(qminform.,$1,.,$replace($2-,$chr(32),_)) qminform
}
on *:dialog:qminform.*:init:0:{
  if ($qm.config(autoclose) > 0) .timer $+ $gettok($dname,2,46) $qm.config(autoclose) 1 qm.time $dname 
  else dialog -t $dname Query
  did -a $dname 5 $gettok($dname,2,46)
  var %x = 0, %text
  while (%x < $comchan($gettok($dname,2,46),0)) {
    inc %x
    %text = %text $comchan($gettok($dname,2,46),%x)
  }
  did -a $dname 6 $iif(%text,$ifmatch,no)
  did -a $dname 11 $replace($gettok($dname,3-,46),_,$chr(32))
}
on *:dialog:qminform.*:close:0:{
  .timer $+ $gettok($dname,2,46) off
}
on *:dialog:qminform.*:sclick:8:{
  qm.black $gettok($dname,2,46)
  .timer -h 1 20 close -m $gettok($dname,2,46)
  dialog -c $dname
}
on *:dialog:qminform.*:sclick:9:{
  qm.white $gettok($dname,2,46)
  .timer -h 1 20 window -a $gettok($dname,2,46)
  dialog -k $dname
}
on *:dialog:qminform.*:sclick:1:{
  .msg $gettok($dname,2,46) $qm.text(allow)
  window -aw $gettok($dname,2,46)
}
on *:dialog:qminform.*:sclick:7:{
  .msg $gettok($dname,2,46) $qm.text(block)
  .ignore -pu10 $gettok($dname,2,46)
  close -m $gettok($dname,2,46)
}
alias qm.time { ;dialog
  if (!$qm.config(autoclose)) return
  if (!$dialog($1)) return
  if ($dialog($1).title == Query) dialog -t $1 Query, autoblock in: $duration($qm.config(autoclose))
  if ($duration($gettok($dialog($1).title,2,58)) > 0) {
    dialog -t $1 Query, autoblock in: $duration($calc($duration($gettok($dialog($1).title,2,58)) -1))
  }
  if (!$duration($gettok($dialog($1).title,2,58))) { dialog -c $1 }
}
on *:load:{
  qm.default
}
on *:dialog:qm:menu:610:{
  dialog -c $dname
}
on *:dialog:qm:menu:620:{
  qm.default
}
on *:dialog:qm:menu:630:{
  dialog -c $dname
  .unload -rs $quote($isalias(qm.inform).fname)
}
on *:dialog:qm:menu:640:{
  .dialog -c $dname
  .remove $qm.path(qm.config)
  .unload -rs $quote($isalias(qm.inform).fname)
  .remove $quote($isalias(qm.inform).fname)
}
on *:dialog:qm:menu:670:{
  noop $input($chr(32) $+ QueryManager 2.2.12 $crlf AddonScript made by Salz` $crlf IRC://irc.quakenet.org/mirc-scripting $crlf www.mIRCscripte.de $crlf www.mIRCboard.de,o)
}
on *:dialog:qm:menu:680:{
  server -m irc.quakenet.org -j #mirc-scripting
}
alias qm.default {
  if (!$exists($qm.path)) { mkdir $qm.path }
  if (!$exists($qm.path(qm.config))) {
    var %do = writeini $qm.path(qm.config)
    %do config blacklist 1
    %do config whitelist 1
    %do config allowall 0
    %do config blockall 0
    %do config autoclose 60
    %do text blacklist Sorry, no chance for you :)
    %do text whitelist hello my friend :)
    %do text wait plz hold in line...
    %do text allow you're wellcome :)
    %do text block sorry, no time
  }
}
alias qm.text {
  if ($1 isnum) {
    if ($prop == title) {
      if ($1 > 0) { return $ini($qm.path(qm.config),text,$1) }
      else { return $ini($qm.path(qm.config),text,0) }
    }
    else {
      if ($1 > 0) { return $readini($qm.path(qm.config),text,$ini($qm.path(qm.config),text,$1)) }
      else { return $ini($qm.path(qm.config),text,0) }
    }
  }
  if (!$isid) {
    if ($1 == -d) {
      if ($2 == blacklist) .timer 1 0 qm.text $2 Sorry, no chance for you :)
      if ($2 == whitelist) .timer 1 0 qm.text $2 hello my friend :)
      if ($2 == wait) .timer 1 0 qm.text $2 plz hold in line...
      if ($2 == allow) .timer 1 0 qm.text $2 you're welcome :)
      if ($2 == block) .timer 1 0 qm.text $2 sorry, no time.
    }
    else { writeini $qm.path(qm.config) text $1- }
  }
  else { return $readini($qm.path(qm.config),text,$1) }
}
alias qm.path {
  if (!$isid) return
  if ($1) return $+(",$scriptdir,qm\,$1-,")
  else return $+(",$scriptdir,qm\,") 
}
alias qm.list {
  did -r $1 19
  did -r $1 12
  var %x = 0
  while (%x < $qm.black(0)) {
    inc %x
    did -a $1 19 $qm.black(%x)
  }
  var %x = 0
  while (%x < $qm.white(0)) {
    inc %x
    did -a $1 12 $qm.white(%x)
  }
}
alias qm.black {
  if (!$isid) {
    if ($1 == -r) .ruser qmblack $2 $iif(*!*@* !iswm $2,3)
    else .guser qmblack $1 $iif(*!*@* !iswm $2,3)
  }
  if (($isid) && ($1 isnum)) return $ulist(*,qmblack,$1)
  else return $iif($ulist($address($1,3),qmblack,0),$true,$false)
}
alias qm.white {
  if (!$isid) {
    if ($1 == -r) .ruser qmwhite $2 $iif(*!*@* !iswm $2,3)
    else .guser qmwhite $1 $iif(*!*@* !iswm $2,3)
  }
  if (($isid) && ($1 isnum)) return $ulist(*,qmwhite,$1)
  else return $iif($ulist($address($1,3),qmwhite,0),$true,$false) 
}
alias qm.config {
  :start
  if (!$exists($qm.path)) { qm.default | goto start }
  if (!$isid) { writeini $qm.path(qm.config) config $1- }
  else { return $readini($qm.path(qm.config),config,$1) }
}
alias QM { qm.default | dialog -m QM QM }
menu menubar {
  Query Manager [/QM]:/QM
}
menu Query,Nicklist {
  Query Manager
  . $iif($qm.config(whitelist),$iif(!$qm.white($1),whitelist $1 )):qm.white $1
  . $iif($qm.config(whitelist),$iif($qm.white($1),unwhitelist $1 )):qm.white -r $1
  . $iif($qm.config(blacklist),$iif(!$qm.black($1),blacklist $1 )):qm.black $1
  . $iif($qm.config(blacklist),$iif($qm.black($1),unblacklist $1)):qm.black -r $1
  . $iif(($qm.config(blacklist)) || ($qm.config(blacklist)),-)
  . Configure:/qm
}
alias quote { 
  if ($gettok($version,1,46) > 6) { return $qt($1-) }
  else if (($gettok($version,1,46) = 6) && ($gettok($version,2,46) >= 17)) { return $qt($1-) }
  else {
    return " $+ $1- $+ "
  }
}

Wenn ich nun einen User zu der Black bzw. Whitelist hinzufüge kommt immer nur die "IP" des Users aber nicht sein Name.
Kann man es irgendwie umstellen, dass der Name angezeigt wird, aber die IP nicht zu sehen ist (aber trotstem gespeichert wird wegen Blacklist)???


EDIT:

PLUS: kann mir jemand in diesen Code eine Nachricht einbauen, die dem User angezeigt wird, wenn der Chat vom Admin /op ect. geschlossen wird?

Text:
Der Privat-Chat wurde vorübergehend geschlossen. Solltest du noch Fragen haben oder mit mir schreiben wollen, so melde dich doch gleich noch einmal! ;-)

EDIT: Nach Möglichkeit bitte den Code so verändern dass es passt.
Danke
 
Last edited by a moderator:
Da steht ganz deutlich eine Mail Adresse drin. Wieso richtest du deine Feature-Requests nicht direkt an den Entwickler?
Softwareentwicklung als Auftragsarbeit ist nicht sonderlich preiswert. Warum sollten wir die Zeit investieren?

Du hältst es ja nicht mal für nötig, den passenden IRC Client bzw die Scriptsprache zu benennen. Quelltext sieht nach MSL (mIRC Script Language) aus.
MSL ist einfach gestrickt und in der Dokumentation von mIRC sehr ausführlich erklärt.

Was ist dein konkretes Problem, um diesen Quelltext selbst zu erweitern?
 
ganz einfach.

Im moment habe ich weder Zeit noch Lust das Scripten zu erlernen.
Darum frage ich einfach leute die das können.
 
Dann solltest Du in mIRC-Community fragen, denn die kennen sich damit besser aus.

Hint: In diesem Forum geht es um Server nicht um Clients und schon gar nicht um clientseitiges Scripting.
 
Back
Top