Administrators chain Posted November 4, 2011 Administrators Report Share Posted November 4, 2011 Ein sehr guter Queryblocker, welcher über ein Dialogfeld konfiguriert werden kann.Besondere Funktionen: WhiteList BlackList >[script]n0=#query_block onn1=on 1:OPEN:?:*:{n2= if ($BlockZeit($nick)) {n3= close -m $nickn4= w_LogText $nick $1-n5= if ($BlockLast($nick) > 3600) { MakeBlockUser $nick }n6= }n7= elseif ($QueryUser($nick) == 0) {n8= close -m $nickn9= w_LogText $nick $1-n10= MakeBlockUser $nickn11= }n12= else {n13= msg $nick QUERYBLOCKER: Query zugelassen!n14= msg $nick Moment bitte ich bin gleich bei dir $nick $+ , sofern ich am PC bin. ;o)n15= echo -a * QUERYBLOCKER: $timestamp Neuer Queryuser: $nick $+ !n16= if (($QueryZFS == EIN) && ($active != Status Window)) {n17= echo -s * QUERYBLOCKER: $timestamp Neuer Queryuser: $nick $+ !n18= echo -s -n19= }n20= if (($QueryZFR == EIN) && ($active != $comchan($nick,1)) && ($comchan($nick,0) >= 1)) {n21= echo $comchan($nick,1) * QUERYBLOCKER: $timestamp Neuer Queryuser: $nick $+ !n22= }n23= if ($QuerySound != Kein_Sound) { splay -w $QuerySound }n24= }n25=}n26=#query_block endn27=n28=#notice_block onn29=on ^1:NOTICE:*:?:{n30= if (($BlockZeit($nick)) && ($group(#query_block) == on)) {n31= haltdefn32= n_LogText $nick $1-n33= }n34=}n35=#notice_block endn36=on 1:START:{n37= if ($StatusAnzeige == EIN) {n38= if ($group(#query_block) == on) {n39= echo -s * QUERYBLOCKER: Eingeschaltet!n40= echo -s -n41= }n42= else {n43= echo -s * QUERYBLOCKER: Nicht Eingeschaltet!n44= echo -s -n45= }n46= }n47=}n48=menu MenuBar {n49= $iif($dialog(qb),$style(2)) Queryblocker... :{ dialog -ma qb QueryBlocker }n50=}n51=dialog QueryBlocker {n52= title "Queryblocker"n53= size -1 -1 400 350n54= tab "Übersicht",1,5 5 390 310n55= tab "Erlaubte User",2n56= tab "Geblockte User",3n57= tab "Konfiguration",4n58= box "Blocker",34,25 40 135 100,tab1n59= check " Query's EIN/AUS",5,40 70 115 15,tab1n60= check " Notice's EIN/AUS",6,40 100 115 15,tab1n61= box "Infos",7,180 40 195 100,tab1n62= text "Erlaubte User",8,200 62 100 15,tab1n63= list 9,310 60 40 20,tab1n64= text "Geblockte User",10,200 87 100 15,tab1n65= list 11,310 85 40 20,tab1n66= text "Logzeilen gesamt",12,200 112 100 15,tab1n67= list 13,310 110 40 20,tab1n68= box "Hilfe zum Blocker",14,25 160 350 130,tab1n69= text "",15,40 190 300 80,tab1n70= list 16,20 40 180 270,tab2 sortn71= button "User hinzufügen",17,230 50 130 25,tab2n72= button "User bearbeiten",18,230 90 130 25,tab2n73= button "User löschen",19,230 130 130 25,tab2n74= box "User Editfeld",20,210 190 170 60,tab2n75= edit "",21,220 215 150 20,tab2 autohsn76= button "Editfeld leeren",22,210 260 130 20,tab2n77= list 23,20 40 180 270,tab3n78= box "Infos zum User",24,210 35 170 95,tab3n79= text "Logzeilen Anzahl:",25,227 59 100 15,tab3n80= list 26,325 57 40 20,tab3n81= text "Letzte Blockmeldung vor:",27,227 85 140 15,tab3n82= list 28,225 100 140 20,tab3n83= button "User löschen",29,220 150 150 25,tab3n84= button "User erlauben",30,220 185 150 25,tab3n85= button "Logdatei aufrufen",31,220 220 150 25,tab3n86= button "Logdatei leeren",32,220 255 150 25,tab3n87= button "Dialog schliessen",33,100 320 200 25,canceln88= box "Erlaubte User",35,15 35 180 150,tab4n89= text "Sound beim Query:",36,32 60 150 15,tab4n90= button "",37,30 75 150 25,tab4n91= text "Zusätliche Meldung:",38,32 120 150 15,tab4n92= check " ...ins status Fenster",39,30 135 150 15,tab4n93= check " ...in gemeinsamen Raum",40,30 155 150 15,tab4n94= box "Geblockte User",41,205 35 180 150,tab4n95= text "Sound beim Block:",42,222 60 150 15,tab4n96= button "",43,220 75 150 25,tab4n97= text "Zusätliche Meldung:",44,222 120 150 15,tab4n98= check " ...ins aktive Fenster",45,220 135 150 15,tab4n99= check " ...in gemeinsamen Raum",46,220 155 150 15,tab4n100= box Infos zur Konfiguration,47,15 195 370 80,tab4n101= text "",48,25 213 350 55,tab4n102= check "Status des Queryblockers beim Start anzeigen",49,20 285 350 15,tab4n103=}n104=on 1:dialog:qb:INIT:0:{n105= if ($group(#query_block) == on) { did -c qb 5 }n106= else { did -b qb 6 }n107= if ($group(#notice_block) == on) { did -c qb 6 }n108= ShowLogZeilenn109= FillQUserListn110= FillBUserListn111= did -a qb 15 Ist der Blocker für Query's eingeschaltet, kann optional gewählt $&n112= werden ob auch Notice's von geblockten Usern mit unterdrückt werden sollen. $&n113= $crlf $+ Bei ausgeschaltetem blocken von Query's werden Notice's immer $&n114= durchgelassen und die Checkbox für die Notice's wird deaktiviert.n115= AktQSButtonn116= if ($QueryZFS == EIN) { did -c qb 39 }n117= if ($QueryZFR == EIN) { did -c qb 40 }n118= AktBSButtonn119= if ($BlockZFA == EIN) { did -c qb 45 }n120= if ($BlockZFR == EIN) { did -c qb 46 }n121= did -a qb 48 Die Sounds können durch klicken der Button gewählt werden (Nur .wav Dateien). $&n122= Meldungen zum Query werden grundsätzlich im aktiven Fenster angezeigt und$&n123= die zum Block im status Fenster. Im gemeinsamen Raum wird nur angezeigt wenn $&n124= das nicht das aktive Fenster ist.n125= if ($StatusAnzeige == EIN) { did -c qb 49 }n126=}n127=:*************************** TAB 1 ***************************n128=on 1:dialog:qb:SCLICK:5:{n129= if ($did(qb,5).state == 0) {n130= .disable #query_blockn131= did -b qb 6n132= }n133= else {n134= .enable #query_blockn135= did -e qb 6n136= }n137=}n138=on 1:dialog:qb:SCLICK:6:{n139= if ($did(qb,6).state == 0) { .disable #notice_block }n140= else { .enable #notice_block }n141=}n142=on 1:dialog:qb:SCLICK:9:{ did -u qb 9 }n143=on 1:dialog:qb:SCLICK:11:{ did -u qb 11 }n144=on 1:dialog:qb:SCLICK:13:{ did -u qb 13 }n145=;*************************** TAB 2 *******************************n146=on 1:dialog:qb:SCLICK:2:{ FillQUserList }n147=on 1:dialog:qb:SCLICK:17:{n148= if ($did(qb,21)) {n149= if ($BlockZeit($did(qb,21))) {n150= var %dummy $input(ACHTUNG! $did(qb,21) ist ein geblockter User. Um $did(qb,21) $&n151= einzutragen gehe auf "Geblockte User" und klicke "User erlauben".,-oi,INFO)n152= }n153= else {n154= w_QueryUser $did(qb,21)n155= did -r qb 21n156= FillQUserListn157= }n158= }n159= else { var %dummy $input(Kein Nickname im User Editfeld vorhanden!,-oi,FEHLER) }n160=}n161=on 1:dialog:qb:SCLICK:18:{n162= if ($did(qb,16).sel) {n163= did -r qb 21n164= did -a qb 21 $did(qb,16).seltextn165= l_Queryuser $did(qb,16).seltextn166= FillQUserListn167= }n168= else { var %dummy $input(Kein Nickname in der Liste markiert!,-oi,FEHLER) }n169=}n170=on 1:dialog:qb:SCLICK:19:{n171= if ($did(qb,16).sel) {n172= var %sa_del_qu $input(Soll $did(qb,16).seltext wirklich von der Liste gelöscht werden?,-yq,ACHTUNG!)n173= if (%sa_del_qu) {n174= l_Queryuser $did(qb,16).seltextn175= FillQUserListn176= }n177= }n178= else { var %dummy $input(Kein Nickname in der Liste markiert!,-oi,FEHLER) }n179=}n180=on 1:dialog:qb:SCLICK:22:{n181= did -r qb 21n182=}n183=;************************** TAB 3 ****************************n184=on 1:dialog:qb:SCLICK:3:{ FillBUserList }n185=on 1:dialog:qb:SCLICK:23:{n186= var %bu_name $did(qb,23).seltextn187= if ($LogFile(%bu_name)) {n188= did -r qb 26n189= did -a qb 26 $LogLines(%bu_name)n190= }n191= did -r qb 28n192= did -a qb 28 $duration($BlockLast(%bu_name),2)n193=}n194=on 1:dialog:qb:SCLICK:26:{ did -u qb 26 }n195=on 1:dialog:qb:SCLICK:28:{ did -u qb 28 }n196=on 1:dialog:qb:SCLICK:29:{n197= if ($did(qb,23).sel) {n198= var %sa_del_bu $input(Soll $did(qb,23).seltext wirklich von der Liste gelöscht werden? $&n199= $crlf $+ Wenn ja $+ $chr(44) wird auch seine Logdatei gelöscht! $crlf $+ Letzte $&n200= Blockmeldung vor: $duration($BlockLast($did(qb,23).seltext),2),-yq,ACHTUNG!)n201= if (%sa_del_bu) {n202= l_Blockuser $did(qb,23).seltextn203= l_LogFile $did(qb,23).seltextn204= FillBUserListn205= }n206= }n207= else { var %dummy $input(Kein Nickname in der Liste markiert!,-oi,FEHLER) }n208=}n209=on 1:dialog:qb:SCLICK:30:{n210= if ($did(qb,23).sel) {n211= var %sa_erl_bu $input(Soll es $did(qb,23).seltext künftig erlaubt sein dich $&n212= anzuflüstern? $crlf $+ Wenn ja $+ $chr(44) werden User und Logdatei gelöscht!,-yq,ACHTUNG!)n213= if (%sa_erl_bu) {n214= l_Blockuser $did(qb,23).seltextn215= l_LogFile $did(qb,23).seltextn216= w_QueryUser $did(qb,23).seltextn217= FillBUserListn218= }n219= }n220= else { var %dummy $input(Kein Nickname in der Liste markiert!,-oi,FEHLER) }n221=}n222=on 1:dialog:qb:SCLICK:31:{n223= if ($did(qb,23).sel) { run notepad.exe $LogName($did(qb,23).seltext) }n224= else { var %dummy $input(Kein Nickname in der Liste markiert!,-oi,FEHLER) }n225=}n226=on 1:dialog:qb:SCLICK:32:{n227= if ($did(qb,23).sel) {n228= LogDelete $did(qb,23).seltextn229= FillBUserListn230= }n231= else { var %dummy $input(Kein Nickname in der Liste markiert!,-oi,FEHLER) }n232=}n233=;************************* TAB 4 ****************************n234=on 1:dialog:qb:SCLICK:37:{n235= var %querysfile $sfile($mircdir,Query-Sound wählen,Auswählen)n236= if (%querysfile) {n237= if ($right(%querysfile,4) != .wav) {n238= var %dummy $input(Es dürfen nur .wav Dateien als Sound gewählt werden!,-oi,FEHLER)n239= }n240= else { w_QuerySound %querysfile }n241= }n242= else { w_QuerySound Kein_Sound }n243= AktQSButtonn244=}n245=on 1:dialog:qb:SCLICK:39:{n246= if ($did(qb,39).state == 0) { w_QueryZFS AUS }n247= else { w_QueryZFS EIN }n248=}n249=on 1:dialog:qb:SCLICK:40:{n250= if ($did(qb,40).state == 0) { w_QueryZFR AUS }n251= else { w_QueryZFR EIN }n252=}n253=on 1:dialog:qb:SCLICK:43:{n254= var %blocksfile $sfile($mircdir,Block-Sound wählen,Auswählen)n255= if (%blocksfile) {n256= if ($right(%blocksfile,4) != .wav) {n257= var %dummy $input(Es dürfen nur .wav Dateien als Sound gewählt werden!,-oi,FEHLER)n258= }n259= else { w_BlockSound %blocksfile }n260= }n261= else { w_BlockSound Kein_Sound }n262= AktBSButtonn263=}n264=on 1:dialog:qb:SCLICK:45:{n265= if ($did(qb,45).state == 0) { w_BlockZFA AUS }n266= else { w_BlockZFA EIN }n267=}n268=on 1:dialog:qb:SCLICK:46:{n269= if ($did(qb,46).state == 0) { w_BlockZFR AUS }n270= else { w_BlockZFR EIN }n271=}n272=on 1:dialog:qb:SCLICK:49:{n273= if ($did(qb,49).state == 0) { w_StatusAnzeige AUS }n274= else { w_StatusAnzeige EIN }n275=}n276=;************************** ALIASES *************************n277=Alias MakeBlockUser {n278= w_BlockUser $1n279= BlockMessage $1n280= echo -s * QUERYBLOCKER: $timestamp $1 geblockt!n281= echo -s -n282= if (($BlockZFA == EIN) && ($active != Status Window)) {n283= echo -a * QUERYBLOCKER: $timestamp $1 geblockt!n284= }n285= if (($BlockZFR == EIN) && ($active != $comchan($1,1)) && ($comchan($1,0) >= 1)) {n286= echo $comchan($1,1) * QUERYBLOCKER: $timestamp $1 geblockt!n287= }n288= if ($BlockSound != Kein_Sound) { splay -w $BlockSound }n289=}n290=Alias ShowErlUser {n291= did -r qb 9n292= did -a qb 9 $LinesQueryUsern293=}n294=Alias ShowGebUser {n295= did -r qb 11n296= did -a qb 11 $BlockLinesn297=}n298=Alias ShowLogZeilen {n299= did -r qb 13n300= var %slz_anzahl 0n301= var %slz_zähler 1n302= while (%slz_zähler 0) {n304= inc %slz_anzahl $LogLines($BlockUser(%slz_zähler))n305= }n306= inc %slz_zählern307= } n308= did -a qb 13 %slz_anzahln309=}n310=Alias FillQUserList {n311= did -r qb 16n312= var %fqul_zähler 1n313= while (%fqul_zähler $2- }n361=Alias n_LogText { write -a Query-Daten\ $+ $1 $+ log.txt $timestamp - $+ $1 $+ - $2- }n362=Alias LogFile { return $exists(Query-Daten\ $+ $1 $+ log.txt) }n363=Alias LogLines { return $lines(Query-Daten\ $+ $1 $+ log.txt) }n364=Alias LogName { return Query-Daten\ $+ $1 $+ log.txt }n365=Alias LogDelete { write -c Query-Daten\ $+ $1 $+ log.txt }n366=Alias l_LogFile { .remove Query-Daten\ $+ $1 $+ log.txt }n367=Alias BlockZeit { return $read(Query-Daten\Blockuser.txt,s,$1) }n368=Alias BlockLast { return $calc($ctime - $BlockZeit($1)) }n369=Alias BlockLines { return $lines(Query-Daten\Blockuser.txt) }n370=Alias l_BlockUser { write -ds $1 Query-Daten\Blockuser.txt }n371=Alias w_BlockUser { write -s $1 Query-Daten\Blockuser.txt $1 $ctime }n372=Alias BlockUser {n373= var %bu_zeile $read(Query-Daten\Blockuser.txt,$1)n374= var %bu_länge $calc($pos(%bu_zeile,$chr(32),1) - 1)n375= return $left(%bu_zeile,%bu_länge)n376=}n377=Alias BlockMessage {n378= var %blockraum_zähler 1n379= while (%blockraum_zähler QUERYBLOCKER: Query geblockt!n384= .msg $1 Hallo $1 $+ , du stehst nicht auf meiner Liste mit vertrauten Usern, also kannst du mich nicht anflüstern.n385= if (%blockraum_zähler == 1) {n386= .msg $1 Zur Zeit bin ich auch in keinem Raum, so dass du mich nicht erreichen kannst.n387= }n388= elseif (%blockraum_zähler == 2) { n389= .msg $1 Wenn du mit mir sprechen willst erreichst du mich in folgendem Raum: %akt_block_räumen390= }n391= else {n392= .msg $1 Wenn du mit mir sprechen willst erreichst du mich in folgenden Räumen: %akt_block_räumen393= }n394= .msg $1 Diese Meldung wird frühestens in 1 Stunde das nächste mal angezeigt!n395=}n396=n397=;------------ Diese und alle nachfolgenden Zeilen, -------------n398=;----- können nach dem Laden des Scritpes entfernt werden! -----n399=n400=;********************** Installation ***************************n401=on 1:LOAD:{n402= if (!$exists(Query-Daten)) { .mkdir Query-Daten }n403= if (!$exists(Query-Daten\Queryuser.txt)) { write -c Query-Daten\Queryuser.txt }n404= if (!$exists(Query-Daten\Blockuser.txt)) { write -c Query-Daten\Blockuser.txt }n405= w_StatusAnzeige EINn406= w_QuerySound Kein_Soundn407= w_QueryZFS AUSn408= w_QueryZFR AUSn409= w_BlockSound Kein_Soundn410= w_BlockZFA AUSn411= w_BlockZFR AUSn412=} Link to comment Share on other sites More sharing options...