menu channel,nicklist,status,menubar,query { Query Manager:qman } alias qman { if ($dialog(qdc1) == $null) { dialog -ma qcd1 qcd1 } else { dialog -v qcd1 } } alias -l qcdc { if ($window(@timed-out_queries) == $null) { /window -g2k0 +l @Timed-Out_Queries 200 200 600 200 aline @timed-out_queries To View a Full listing of Missed/Ignored PM's Type /run querylogs.txt aline @timed-out_queries To Clear/Erase this log, type /remove querylogs.txt } aline @timed-out_queries $timestamp $+(<,%querynick,>) %querytext write querylogs.txt $timestamp $+(<,%querynick,>) %querytext close -m %querynick if ($dialog(qcd2) != $null) { dialog -x qcd2 } } alias -l cleardata { unset %querynick unset %querypm dialog -x qcd2 } dialog qcd1 { title "Query Control [v0.5]" size -1 -1 156 107 option dbu radio "Block All Queries", 1, 5 5 50 10 radio "Allow All Queries", 2, 5 13 50 10 radio "Ask On Query", 3, 5 21 50 10 box "", 4, 1 -1 59 35 edit "", 5, 84 8 50 12, autohs text "Use [me] and [nick] to add their respective identifiers to the response", 7, 70 29 80 21 box "Custom Response", 6, 62 -1 89 53 text "Default Hostmask", 8, 73 63 42 8 edit "", 9, 119 62 20 10, limit 1 text "Block Time (Secs)", 10, 73 75 45 8 edit "", 11, 119 74 20 10 box "Ignore Options", 12, 62 55 89 33 check "Block Colors", 13, 5 47 50 10 check "Block # Adverts", 14, 5 55 50 10 check "Block www./http:/.com", 15, 5 63 50 10 check "Block On Join PM's", 16, 5 71 53 10 button "View Allowed Nicks", 17, 3 92 54 10 box "Specific Blocks", 18, 1 38 59 45 button "Cancel", 19, 68 91 37 12, cancel button "OK", 20, 109 91 37 12, ok } dialog -l qcd2 { title "" size -1 -1 78 40 option dbu edit %querynick %querytext, 5, 4 1 71 10, read button "Accept", 1, 1 13 37 12 button "Perm Accept", 2, 40 13 37 12 button "Ignore", 3, 1 26 37 12 button "Block", 4, 40 26 37 12 } dialog -l qcd3 { title size -1 -1 57 67 option dbu list 1, 3 2 52 50, size button "Remove", 2, 3 53 25 12 button "Add", 3, 30 53 25 12 } on *:DIALOG:qcd1:sclick:20:{ if ($did($dname,1).state == 0) && $did($dname,2).state == 0) && $did($dname,3).state == 0) { writeini QMan.ini Setup method prompt } elseif ($did($dname,1).state == 1) { writeini Qman.ini setup method block } elseif ($did($dname,2).state == 1) { writeini Qman.ini setup method accept } elseif ($did($dname,3).state == 1) { writeini Qman.ini setup method prompt } if ($did($dname,9).text != $null) && ($did($dname,9).text isnum 1-5) { writeini qman.ini setup hostmask $did($dname,9).text } if ($did($dname,11).text != $null) && ($did($dname,11).text isnum 1-) { writeini qman.ini setup ignoretime $did($dname,11).text } writeini qman.ini setup response $iif($did($dname,5).text != $null,$did($dname,5).text,Awaiting Query Validation...) writeini qman.ini setup response1 $iif($did($dname,5).text != $null,$replace($did($dname,5).text,[me],$chr(36) $+ me,[nick],$chr(36) $+ nick),Awaiting Query Validation...) writeini qman.ini setup bc $iif($did($dname,13).state == 1,1,0) writeini qman.ini setup ba $iif($did($dname,14).state == 1,1,0) writeini qman.ini setup bw $iif($did($dname,15).state == 1,1,0) writeini qman.ini setup bj $iif($did($dname,16).state == 1,1,0) } on *:DIALOG:qcd1:init:*:{ if ($readini(qman.ini,setup,method) == block) { did -c $dname 1 } elseif ($readini(qman.ini,setup,method) == accept) { did -c $dname 2 } elseif ($readini(qman.ini,setup,method) == prompt) { did -c $dname 3 } elseif ($readini(qman.ini,setup,method) == $null) { did -c $dname 3 } did -a $dname 5 $iif($readini(qman.ini,setup,response) != $null,$readini(qman.ini,setup,response),Awaiting Query Validation... Please Wait) if ($readini(qman.ini,setup,bc) == 1) { did -c $dname 13 } if ($readini(qman.ini,setup,ba) == 1) { did -c $dname 14 } if ($readini(qman.ini,setup,bw) == 1) { did -c $dname 15 } if ($readini(qman.ini,setup,bj) == 1) { did -c $dname 16 } did -a $dname 9 $iif($readini(qman.ini,setup,hostmask) != $null,$readini(qman.ini,setup,hostmask),1) did -a $dname 11 $iif($readini(qman.ini,setup,ignoretime) != $null,$readini(qman.ini,setup,ignoretime),60) } on *:DIALOG:qcd1:sclick:17:{ dialog -m qcd3 qcd3 } on *:DIALOG:qcd2:sclick:1:{ .timerqueryd off query -n %querynick Query Accepted window -a %querynick cleardata } on *:DIALOG:qcd2:sclick:2:{ .timerqueryd off writeini qman.ini allowed %querynick 1 query -n %querynick Query Accepted window -a %querynick cleardata } on *:DIALOG:qcd2:sclick:3:{ close -m %querynick qcdc } on *:DIALOG:qcd2:sclick:4:{ set $+(-u,$readini(qman.ini,setup,ignoretime)) %queryblocker [ $+ [ $address(%querynick,$readini(qman.ini,setup,hostmask)) ] ] 1 close -m %querynick qcdc } on *:DIALOG:qcd3:init:*:{ var %i = 0 while (%i < $ini(qman.ini,allowed,0)) { inc %i 1 did -a $dname 1 $ini(qman.ini,allowed,%i) } } on *:DIALOG:qcd3:sclick:2:{ remini qman.ini allowed $$did($dname,1).seltext dialog -x qcd3 dialog -m qcd3 qcd3 } on *:DIALOG:qcd3:sclick:3:{ var %name = $$?="Enter the name you wish to add" if ($readini(qman.ini,allowed,%name) != $null) { .echo -q $input(%name is already on the allowed list,ok) | halt } else { writeini qman.ini allowed %name 1 did -a $dname 1 %name } } on ^*:OPEN:?:{ if ($readini(qman.ini,setup,method) == block) { .msg $nick I am currently Not accepting PM's | halt } elseif ($readini(qman.ini,setup,bj) == 1) && (%ijustjoinedachannel == 1) { .msg $nick Your PM Has been blocked because I suspect that it is sent through an On Join Event | halt } elseif (($readini(qman.ini,setup,bc) == 1) && ($strip($1-,c) != $1- )) || (($readini(qman.ini,setup,ba) == 1) && ($chr(35) isin $1-)) || (($readini(qman.ini,setup,bw) == 1) && ((www. isin $1-) || (http: isin $1-) || (.com isin $1-))) { .msg $nick Your PM Has been blocked do to either Colors or Advertisement | halt } elseif ($readini(qman.ini,setup,method) == accept) { return } else { if (%queryblocker [ $+ [ $address($nick,$readini(qman.ini,setup,hostmask)) ] ] != $null) { .msg $nick Query Blocked | halt } elseif ($readini(qman.ini,allowed,$nick) != $null) { return } .msg $nick $readini(qman.ini,setup,response1) if ($dialog(qcd2) != $null) { if ($window(@timed-out_queries) == $null) { /window -g2k0 +l @Timed-Out_Queries 200 200 600 200 aline @timed-out_queries To View a Full listing of Missed/Ignored PM's Type /run querylogs.txt aline @timed-out_queries To Clear/Erase this log, type /remove querylogs.txt } aline @timed-out_queries $timestamp $+(<,%querynick,>) %querytext write querylogs.txt $timestamp $+(<,%querynick,>) %querytext set %querynick $nick set %querytext $1- did -r qcd2 5 did -a qcd2 5 %querynick %querytext .timerqueryd 1 10 qcdc } else { set %querynick $nick set %querytext $1- dialog -m qcd2 qcd2 .timerqueryd 1 10 qcdc } } } on *:JOIN:#:{ if ($nick == $me) { set -u4 %ijustjoinedachannel 1 } }