#query_block on
on 1:OPEN:?:*:{
if ($BlockZeit($nick)) {
msg $nick Query blocked!
close -m $nick
w_LogText $nick $1-
if ($BlockLast($nick) > 3600) { MakeBlockUser $nick }
}
elseif ($QueryUser($nick) == 0) {
msg $nick Query blocked!
close -m $nick
w_LogText $nick $1-
MakeBlockUser $nick
}
else {
msg $nick QUERYBLOCKER: Query zugelassen!
msg $nick Moment bitte ich bin gleich bei dir $nick $+ , sofern ich am PC bin. ;o)
echo -a * QUERYBLOCKER: $timestamp Neuer Queryuser: $nick $+ !
if (($QueryZFS == EIN) && ($active != Status Window)) {
echo -s * QUERYBLOCKER: $timestamp Neuer Queryuser: $nick $+ !
echo -s -
}
if (($QueryZFR == EIN) && ($active != $comchan($nick,1)) && ($comchan($nick,0) >= 1)) {
echo $comchan($nick,1) * QUERYBLOCKER: $timestamp Neuer Queryuser: $nick $+ !
}
if ($QuerySound != Kein_Sound) { splay -w $QuerySound }
}
}
#query_block end
#notice_block on
on ^1:NOTICE:*:?:{
if (($BlockZeit($nick)) && ($group(#query_block) == on)) {
haltdef
n_LogText $nick $1-
}
}
#notice_block end
on 1:START:{
if ($StatusAnzeige == EIN) {
if ($group(#query_block) == on) {
echo -s * QUERYBLOCKER: Eingeschaltet!
echo -s -
}
else {
echo -s * QUERYBLOCKER: Nicht Eingeschaltet!
echo -s -
}
}
}
menu MenuBar {
$iif($dialog(qb),$style(2)) Queryblocker... :{ dialog -ma qb QueryBlocker }
}
dialog QueryBlocker {
title "Queryblocker"
size -1 -1 400 350
tab "Übersicht",1,5 5 390 310
tab "Erlaubte User",2
tab "Geblockte User",3
tab "Konfiguration",4
box "Blocker",34,25 40 135 100,tab1
check " Query's EIN/AUS",5,40 70 115 15,tab1
check " Notice's EIN/AUS",6,40 100 115 15,tab1
box "Infos",7,180 40 195 100,tab1
text "Erlaubte User",8,200 62 100 15,tab1
list 9,310 60 40 20,tab1
text "Geblockte User",10,200 87 100 15,tab1
list 11,310 85 40 20,tab1
text "Logzeilen gesamt",12,200 112 100 15,tab1
list 13,310 110 40 20,tab1
box "Hilfe zum Blocker",14,25 160 350 130,tab1
text "",15,40 190 300 80,tab1
list 16,20 40 180 270,tab2 sort
button "User hinzufügen",17,230 50 130 25,tab2
button "User bearbeiten",18,230 90 130 25,tab2
button "User löschen",19,230 130 130 25,tab2
box "User Editfeld",20,210 190 170 60,tab2
edit "",21,220 215 150 20,tab2 autohs
button "Editfeld leeren",22,210 260 130 20,tab2
list 23,20 40 180 270,tab3
box "Infos zum User",24,210 35 170 95,tab3
text "Logzeilen Anzahl:",25,227 59 100 15,tab3
list 26,325 57 40 20,tab3
text "Letzte Blockmeldung vor:",27,227 85 140 15,tab3
list 28,225 100 140 20,tab3
button "User löschen",29,220 150 150 25,tab3
button "User erlauben",30,220 185 150 25,tab3
button "Logdatei aufrufen",31,220 220 150 25,tab3
button "Logdatei leeren",32,220 255 150 25,tab3
button "Dialog schliessen",33,100 320 200 25,cancel
box "Erlaubte User",35,15 35 180 150,tab4
text "Sound beim Query:",36,32 60 150 15,tab4
button "",37,30 75 150 25,tab4
text "Zusätliche Meldung:",38,32 120 150 15,tab4
check " ...ins status Fenster",39,30 135 150 15,tab4
check " ...in gemeinsamen Raum",40,30 155 150 15,tab4
box "Geblockte User",41,205 35 180 150,tab4
text "Sound beim Block:",42,222 60 150 15,tab4
button "",43,220 75 150 25,tab4
text "Zusätliche Meldung:",44,222 120 150 15,tab4
check " ...ins aktive Fenster",45,220 135 150 15,tab4
check " ...in gemeinsamen Raum",46,220 155 150 15,tab4
box Infos zur Konfiguration,47,15 195 370 80,tab4
text "",48,25 213 350 55,tab4
check "Status des Queryblockers beim Start anzeigen",49,20 285 350 15,tab4
}
on 1:dialog:qb:INIT:0:{
if ($group(#query_block) == on) { did -c qb 5 }
else { did -b qb 6 }
if ($group(#notice_block) == on) { did -c qb 6 }
ShowLogZeilen
FillQUserList
FillBUserList
did -a qb 15 Ist der Blocker für Query's eingeschaltet, kann optional gewählt $&
werden ob auch Notice's von geblockten Usern mit unterdrückt werden sollen. $&
$crlf $+ Bei ausgeschaltetem blocken von Query's werden Notice's immer $&
durchgelassen und die Checkbox für die Notice's wird deaktiviert.
AktQSButton
if ($QueryZFS == EIN) { did -c qb 39 }
if ($QueryZFR == EIN) { did -c qb 40 }
AktBSButton
if ($BlockZFA == EIN) { did -c qb 45 }
if ($BlockZFR == EIN) { did -c qb 46 }
did -a qb 48 Die Sounds können durch klicken der Button gewählt werden (Nur .wav Dateien). $&
Meldungen zum Query werden grundsätzlich im aktiven Fenster angezeigt und$&
die zum Block im status Fenster. Im gemeinsamen Raum wird nur angezeigt wenn $&
das nicht das aktive Fenster ist.
if ($StatusAnzeige == EIN) { did -c qb 49 }
}
:*************************** TAB 1 ***************************
on 1:dialog:qb:SCLICK:5:{
if ($did(qb,5).state == 0) {
.disable #query_block
did -b qb 6
}
else {
.enable #query_block
did -e qb 6
}
}
on 1:dialog:qb:SCLICK:6:{
if ($did(qb,6).state == 0) { .disable #notice_block }
else { .enable #notice_block }
}
on 1:dialog:qb:SCLICK:9:{ did -u qb 9 }
on 1:dialog:qb:SCLICK:11:{ did -u qb 11 }
on 1:dialog:qb:SCLICK:13:{ did -u qb 13 }
;*************************** TAB 2 *******************************
on 1:dialog:qb:SCLICK:2:{ FillQUserList }
on 1:dialog:qb:SCLICK:17:{
if ($did(qb,21)) {
if ($BlockZeit($did(qb,21))) {
var %dummy $input(ACHTUNG! $did(qb,21) ist ein geblockter User. Um $did(qb,21) $&
einzutragen gehe auf "Geblockte User" und klicke "User erlauben".,-oi,INFO)
}
else {
w_QueryUser $did(qb,21)
did -r qb 21
FillQUserList
}
}
else { var %dummy $input(Kein Nickname im User Editfeld vorhanden!,-oi,FEHLER) }
}
on 1:dialog:qb:SCLICK:18:{
if ($did(qb,16).sel) {
did -r qb 21
did -a qb 21 $did(qb,16).seltext
l_Queryuser $did(qb,16).seltext
FillQUserList
}
else { var %dummy $input(Kein Nickname in der Liste markiert!,-oi,FEHLER) }
}
on 1:dialog:qb:SCLICK:19:{
if ($did(qb,16).sel) {
var %sa_del_qu $input(Soll $did(qb,16).seltext wirklich von der Liste gelöscht werden?,-yq,ACHTUNG!)
if (%sa_del_qu) {
l_Queryuser $did(qb,16).seltext
FillQUserList
}
}
else { var %dummy $input(Kein Nickname in der Liste markiert!,-oi,FEHLER) }
}
on 1:dialog:qb:SCLICK:22:{
did -r qb 21
}
;************************** TAB 3 ****************************
on 1:dialog:qb:SCLICK:3:{ FillBUserList }
on 1:dialog:qb:SCLICK:23:{
var %bu_name $did(qb,23).seltext
if ($LogFile(%bu_name)) {
did -r qb 26
did -a qb 26 $LogLines(%bu_name)
}
did -r qb 28
did -a qb 28 $duration($BlockLast(%bu_name),2)
}
on 1:dialog:qb:SCLICK:26:{ did -u qb 26 }
on 1:dialog:qb:SCLICK:28:{ did -u qb 28 }
on 1:dialog:qb:SCLICK:29:{
if ($did(qb,23).sel) {
var %sa_del_bu $input(Soll $did(qb,23).seltext wirklich von der Liste gelöscht werden? $&
$crlf $+ Wenn ja $+ $chr(44) wird auch seine Logdatei gelöscht! $crlf $+ Letzte $&
Blockmeldung vor: $duration($BlockLast($did(qb,23).seltext),2),-yq,ACHTUNG!)
if (%sa_del_bu) {
l_Blockuser $did(qb,23).seltext
l_LogFile $did(qb,23).seltext
FillBUserList
}
}
else { var %dummy $input(Kein Nickname in der Liste markiert!,-oi,FEHLER) }
}
on 1:dialog:qb:SCLICK:30:{
if ($did(qb,23).sel) {
var %sa_erl_bu $input(Soll es $did(qb,23).seltext künftig erlaubt sein dich $&
anzuflüstern? $crlf $+ Wenn ja $+ $chr(44) werden User und Logdatei gelöscht!,-yq,ACHTUNG!)
if (%sa_erl_bu) {
l_Blockuser $did(qb,23).seltext
l_LogFile $did(qb,23).seltext
w_QueryUser $did(qb,23).seltext
FillBUserList
}
}
else { var %dummy $input(Kein Nickname in der Liste markiert!,-oi,FEHLER) }
}
on 1:dialog:qb:SCLICK:31:{
if ($did(qb,23).sel) { run notepad.exe $LogName($did(qb,23).seltext) }
else { var %dummy $input(Kein Nickname in der Liste markiert!,-oi,FEHLER) }
}
on 1:dialog:qb:SCLICK:32:{
if ($did(qb,23).sel) {
LogDelete $did(qb,23).seltext
FillBUserList
}
else { var %dummy $input(Kein Nickname in der Liste markiert!,-oi,FEHLER) }
}
;************************* TAB 4 ****************************
on 1:dialog:qb:SCLICK:37:{
var %querysfile $sfile($mircdir,Query-Sound wählen,Auswählen)
if (%querysfile) {
if ($right(%querysfile,4) != .wav) {
var %dummy $input(Es dürfen nur .wav Dateien als Sound gewählt werden!,-oi,FEHLER)
}
else { w_QuerySound %querysfile }
}
else { w_QuerySound Kein_Sound }
AktQSButton
}
on 1:dialog:qb:SCLICK:39:{
if ($did(qb,39).state == 0) { w_QueryZFS AUS }
else { w_QueryZFS EIN }
}
on 1:dialog:qb:SCLICK:40:{
if ($did(qb,40).state == 0) { w_QueryZFR AUS }
else { w_QueryZFR EIN }
}
on 1:dialog:qb:SCLICK:43:{
var %blocksfile $sfile($mircdir,Block-Sound wählen,Auswählen)
if (%blocksfile) {
if ($right(%blocksfile,4) != .wav) {
var %dummy $input(Es dürfen nur .wav Dateien als Sound gewählt werden!,-oi,FEHLER)
}
else { w_BlockSound %blocksfile }
}
else { w_BlockSound Kein_Sound }
AktBSButton
}
on 1:dialog:qb:SCLICK:45:{
if ($did(qb,45).state == 0) { w_BlockZFA AUS }
else { w_BlockZFA EIN }
}
on 1:dialog:qb:SCLICK:46:{
if ($did(qb,46).state == 0) { w_BlockZFR AUS }
else { w_BlockZFR EIN }
}
on 1:dialog:qb:SCLICK:49:{
if ($did(qb,49).state == 0) { w_StatusAnzeige AUS }
else { w_StatusAnzeige EIN }
}
;************************** ALIASES *************************
Alias MakeBlockUser {
w_BlockUser $1
BlockMessage $1
echo -s * QUERYBLOCKER: $timestamp $1 geblockt!
echo -s -
if (($BlockZFA == EIN) && ($active != Status Window)) {
echo -a * QUERYBLOCKER: $timestamp $1 geblockt!
}
if (($BlockZFR == EIN) && ($active != $comchan($1,1)) && ($comchan($1,0) >= 1)) {
echo $comchan($1,1) * QUERYBLOCKER: $timestamp $1 geblockt!
}
echo -a 10----11>10 Query von $1 geblockt
}
Alias ShowErlUser {
did -r qb 9
did -a qb 9 $LinesQueryUser
}
Alias ShowGebUser {
did -r qb 11
did -a qb 11 $BlockLines
}
Alias ShowLogZeilen {
did -r qb 13
var %slz_anzahl 0
var %slz_zähler 1
while (%slz_zähler <= $BlockLines) {
if ($LogLines($BlockUser(%slz_zähler)) > 0) {
inc %slz_anzahl $LogLines($BlockUser(%slz_zähler))
}
inc %slz_zähler
}
did -a qb 13 %slz_anzahl
}
Alias FillQUserList {
did -r qb 16
var %fqul_zähler 1
while (%fqul_zähler <= $LinesQueryUser) {
did -a qb 16 $QueryUserName(%fqul_zähler)
inc %fqul_zähler
}
ShowErlUser
}
Alias FillBUserList {
did -r qb 23,26,28
var %fbul_zähler 1
while (%fbul_zähler <= $BlockLines) {
did -a qb 23 $BlockUser(%fbul_zähler)
inc %fbul_zähler
}
ShowGebUser
}
Alias AktQSButton {
did -r qb 37
if ($QuerySound == Kein_Sound) { did -a qb 37 $QuerySound }
else { did -a qb 37 $nopath($QuerySound) }
}
Alias AktBSButton {
did -r qb 43
if ($BlockSound == Kein_Sound) { did -a qb 43 $BlockSound }
else { did -a qb 43 $nopath($BlockSound) }
}
Alias StatusAnzeige { return $readini(Query-Daten\Q-Config.ini,ALLG,StatusAnz) }
Alias w_StatusAnzeige { writeini Query-Daten\Q-Config.ini ALLG StatusAnz $1 }
Alias QuerySound { return $readini(Query-Daten\Q-Config.ini,QUERY,Sound) }
Alias w_QuerySound { writeini Query-Daten\Q-Config.ini QUERY Sound $1 }
Alias QueryZFS { return $readini(Query-Daten\Q-Config.ini,QUERY,ZF_Status) }
Alias w_QueryZFS { writeini Query-Daten\Q-Config.ini QUERY ZF_Status $1 }
Alias QueryZFR { return $readini(Query-Daten\Q-Config.ini,QUERY,ZF_Raum) }
Alias w_QueryZFR { writeini Query-Daten\Q-Config.ini QUERY ZF_Raum $1 }
Alias BlockSound { return $readini(Query-Daten\Q-Config.ini,BLOCK,Sound) }
Alias w_BlockSound { writeini Query-Daten\Q-Config.ini BLOCK Sound $1 }
Alias BlockZFA { return $readini(Query-Daten\Q-Config.ini,BLOCK,ZF_Aktiv) }
Alias w_BlockZFA { writeini Query-Daten\Q-Config.ini BLOCK ZF_Aktiv $1 }
Alias BlockZFR { return $readini(Query-Daten\Q-Config.ini,BLOCK,ZF_Raum) }
Alias w_BlockZFR { writeini Query-Daten\Q-Config.ini BLOCK ZF_Raum $1 }
Alias QueryUser {
$read(Query-Daten\Queryuser.txt,s,$1)
return $readn
}
Alias QueryUserName { return $read(Query-Daten\Queryuser.txt,$1) }
Alias LinesQueryUser { return $lines(Query-Daten\Queryuser.txt) }
Alias w_QueryUser { write -s $1 Query-Daten\Queryuser.txt $1 }
Alias l_QueryUser { write -ds $1 Query-Daten\Queryuser.txt }
Alias w_LogText { write -a Query-Daten\ $+ $1 $+ log.txt $timestamp < $+ $1 $+ > $2- }
Alias n_LogText { write -a Query-Daten\ $+ $1 $+ log.txt $timestamp - $+ $1 $+ - $2- }
Alias LogFile { return $exists(Query-Daten\ $+ $1 $+ log.txt) }
Alias LogLines { return $lines(Query-Daten\ $+ $1 $+ log.txt) }
Alias LogName { return Query-Daten\ $+ $1 $+ log.txt }
Alias LogDelete { write -c Query-Daten\ $+ $1 $+ log.txt }
Alias l_LogFile { .remove Query-Daten\ $+ $1 $+ log.txt }
Alias BlockZeit { return $read(Query-Daten\Blockuser.txt,s,$1) }
Alias BlockLast { return $calc($ctime - $BlockZeit($1)) }
Alias BlockLines { return $lines(Query-Daten\Blockuser.txt) }
Alias l_BlockUser { write -ds $1 Query-Daten\Blockuser.txt }
Alias w_BlockUser { write -s $1 Query-Daten\Blockuser.txt $1 $ctime }
Alias BlockUser {
var %bu_zeile $read(Query-Daten\Blockuser.txt,$1)
var %bu_länge $calc($pos(%bu_zeile,$chr(32),1) - 1)
return $left(%bu_zeile,%bu_länge)
}
Alias BlockMessage {
var %blockraum_zähler 1
while (%blockraum_zähler <= $chan(0)) {
var %akt_block_räume %akt_block_räume $chan(%blockraum_zähler) $+ ,
inc %blockraum_zähler
}
.msg $1 QUERYBLOCKER: Query geblockt!
.msg $1 Hallo $1 $+ , du stehst nicht auf meiner Liste mit vertrauten Usern, also kannst du mich nicht anflüstern.
if (%blockraum_zähler == 1) {
.msg $1 Zur Zeit bin ich auch in keinem Raum, so dass du mich nicht erreichen kannst.
}
elseif (%blockraum_zähler == 2) {
.msg $1 Wenn du mit mir sprechen willst erreichst du mich in folgendem Raum: %akt_block_räume
}
else {
.msg $1 Wenn du mit mir sprechen willst erreichst du mich in folgenden Räumen: %akt_block_räume
}
.msg $1 Diese Meldung wird frühestens in 1 Stunde das nächste mal angezeigt!
}
;------------ Diese und alle nachfolgenden Zeilen, -------------
;----- können nach dem Laden des Scritpes entfernt werden! -----
;********************** Installation ***************************
on 1:LOAD:{
if (!$exists(Query-Daten)) { .mkdir Query-Daten }
if (!$exists(Query-Daten\Queryuser.txt)) { write -c Query-Daten\Queryuser.txt }
if (!$exists(Query-Daten\Blockuser.txt)) { write -c Query-Daten\Blockuser.txt }
w_StatusAnzeige EIN
w_QuerySound Kein_Sound
w_QueryZFS AUS
w_QueryZFR AUS
w_BlockSound Kein_Sound
w_BlockZFA AUS
w_BlockZFR AUS
}