dialog pmb {
title "Private Message Blocker - By Crossfire39"
size -1 -1 195 163
option dbu
tab "Settings", 100, 0 -2 193 150
box "Main Settings", 101, 3 13 188 40, tab 100
edit "", 104, 6 41 183 10, tab 100 autohs
box "Popup Notification", 105, 3 54 89 41, tab 100
check "Enable Popup Notification", 106, 6 61 80 10, tab 100
edit "", 107, 5 82 17 10, tab 100
text "Notification Duration (sec)", 108, 25 84 63 8, tab 100
check "Enable Beep on Notification", 110, 6 71 82 10, group tab 100
check "Enable Message Blocker", 102, 6 21 70 10, tab 100
text "Text To Display To Users", 103, 6 32 86 8, tab 100
box "Private Message Logging", 114, 3 97 89 31, tab 100
check "Enable Message Logging", 115, 6 104 72 10, tab 100
edit "", 116, 4 115 18 10, tab 100
text "Maximum Log Entries", 117, 26 116 55 8, tab 100
box "Window Handling", 111, 94 54 96 21, tab 100
check "Close Message Windows", 112, 97 62 87 10, tab 100
tab "Message Log", 200
box "Recieved Messages", 201, 2 13 190 117, tab 200
list 202, 4 21 185 94, tab 200 size hsbar vsbar
button "Clear Log", 204, 154 117 35 10, tab 200
text "Double click an entry to send a pm", 205, 52 118 87 8, tab 200
tab "Help", 300
box "Main Settings", 301, 4 12 186 31, tab 300
text "Main settings apply to the whole program. Here you can enable or disable the blocker. You can also change the message that is displayed to users when they try to message you witht he program enabled. ", 302, 7 20 181 21, tab 300
box "Notifications", 303, 4 43 186 44, tab 300
text "Notifications are triggered when a user messages you and the blocker is enabled. If popup notifications are enabled, a popup will be triggered and will request input from you. After a set delay, the popup will close and the user will recieve the blocker message, If sounds are enabled, a beep will be triggered with the popup. ", 304, 6 50 180 35, tab 300
box "Message Logging", 305, 4 88 186 32, tab 300
text "If logging is enabled, whenever a message is blocked, the contents of the message will be logged for you to check later. You can remove messages from the logger and send a message to the nick.", 306, 7 96 179 21, tab 300
box "Disable Triggers", 307, 4 121 186 23, tab 300
text "When disable triggers is enabled none of your scripts will be triggered by a command sent by personal message.", 308, 6 129 181 14, tab 300
link "Get Latest Version and Support", 4, 1 153 80 8
button "Ok", 1, 160 152 32 10, ok
button "Cancel", 3, 89 152 32 10, cancel
button "Apply", 2, 124 152 32 10
}
dialog pmb_confirm {
title "Confirmation Request"
size -1 -1 124 75
option dbu
button "Accept", 1, 16 56 37 12, cancel
button "Ignore", 2, 72 56 37 12, ok
box "Confirmation", 3, 2 0 120 73
text "", 4, 6 12 111 39
}
; Commands that happen before and after loading. Unset variables etc
on *:load:{
;Creates a file with default variable values.
if ( $exists(pmb.ini) == $false ) {
/writeini -n pmb.ini Variables Enabled 0
/writeini -n pmb.ini Variables Message Sorry, I am blocking all pm's right now.
/writeini -n pmb.ini Variables Notification 0
/writeini -n pmb.ini Variables Delay 60
/writeini -n pmb.ini Variables Sounds 0
/writeini -n pmb.ini Variables Logging 1
/writeini -n pmb.ini Variables Entries 25
/writeini -n pmb.ini Variables Window 1
/writeini -n pmb.ini Variables Enabled 0
}
/echo -s ** Loaded Message Blocker Successfully **
}
on 1:dialog:pmb:sclick:4:/run http://forum.swiftirc.net/viewtopic.php?t=7860
on *:unload:{
/var %unload = $input(If you wish for your settings to be saved press 'No'. Otherwise press 'Yes' for all traces of this script to be removed., yvgqa, You are about to unload PM Blocker)
if ( %unload == $yes ) { .remove pmb.ini }
/echo -s Thank you for using Crossfire39's Pm Blocker
}
;Allows there to be a link to access the dialog
menu status,channel,query {
Tools
.Message Blocker:/dialog -mr pmb pmb
}
on 1:dialog:pmb:init:0:{
;Loads tab1
if ( $readini(pmb.ini, n, Variables, Enabled) == 1 ) /did -c pmb 102
/did -ra pmb 104 $readini(pmb.ini, n, Variables, Message)
if ( $readini(pmb.ini, n, Variables, Notification) == 1 ) /did -c pmb 106
/did -ra pmb 107 $readini(pmb.ini, n, Variables, Delay)
if ( $readini(pmb.ini, n, Variables, Sounds) == 1 ) /did -c pmb 110
if ( $readini(pmb.ini, n, Variables, Window) == 1 ) /did -c pmb 112
if ( $readini(pmb.ini, n, Variables, Logging) == 1 ) /did -c pmb 115
/did -ra pmb 116 $readini(pmb.ini, n, Variables, Entries)
;Loads tab2
var %x = $ini(pmb.ini,Messages,0)
/did -r pmb 202
/did -a pmb 201 Recieved Messages - $iif(%x != $null,%x,None)
while (%x > 0) {
/did -az pmb 202 $readini(pmb.ini, n, Messages, %x)
/dec %x
}
}
on 1:dialog:pmb:sclick:118:if ( $did(pmb,118).state == 1) $noop($input(This feature disables all other scripts from being triggered by a 'on text' trigger through a personal message. Only use this if you are sure you want this disabled., -aogw, Use With Caution))
on 1:dialog:pmb:sclick:1,2:{
if ($did(pmb,104).text == $null) { $noop($input(Please enter a message to send to users, -ogwa, Error)) | /halt }
if (($did(pmb,107).text == $null) || ($did(pmb,107).text !isnum)) { $noop($input(Please enter a number for duration, -ogwa, Error)) | /halt }
if (($did(pmb,116).text == $null) || ($did(pmb,116).text !isnum)) { $noop($input(Please enter a number for entries, -ogwa, Error)) | /halt }
/writeini -n pmb.ini Variables Delay $int($did(pmb,107).text)
/writeini -n pmb.ini Variables Entries $int($did(pmb,116).text)
/writeini -n pmb.ini Variables Message $did(pmb,104).text
/writeini -n pmb.ini Variables Sounds $iif($did(pmb,110).state == 1,1,0)
/writeini -n pmb.ini Variables Window $iif($did(pmb,112).state == 1,1,0)
/writeini -n pmb.ini Variables Logging $iif($did(pmb,115).state == 1,1,0)
/writeini -n pmb.ini Variables Notification $iif($did(pmb,106).state == 1,1,0)
/writeini -n pmb.ini Variables Enabled $iif($did(pmb,102).state == 1,1,0)
if ( $did(pmb,102).state == 1) .enable #PMB
else .disable #PMB
}
;Tab2 Controls
on 1:dialog:pmb:sclick:204:{ /did -r pmb 202 | /did -a pmb 201 Recieved Messages - None | .remini pmb.ini Messages }
on 1:dialog:pmb:dclick:202:{
/var %nick = $gettok($did(pmb,202).seltext,2,45)
/var %message = $input( Enter a message to send to: %nick , -eogqa, Enter a message)
if ( %message != $null ) .msg %nick %message
}
#PMB on
on 1:open:?:*:{
if ($readini(pmb.ini, n, Variables, Notification) == 0) /Ignore $nick $1-
else {
if ( $readini(pmb.ini, n, Variables, Sounds) == 1) /beep 3
/dialog -mv $+(pmb.,$nick) pmb_confirm
/did -a $+(pmb.,$nick) 4 $nick has sent you a personal message. If you wish to accept this message press 'Accept'. Otherwise press 'Ignore' and they will recieve the preset personal block message.
$($+(.timer,pmb.,$nick),2) 1 $readini(pmb.ini, n, Variables, Delay) /Timeout $nick $1-
}
}
#PMB END
alias -l Timeout { /dialog -x $+(pmb.,$1) | /Ignore $1 $2- }
on 1:dialog:pmb.*:sclick:*:{
/tokenize 32 $timer($dname).com
if ( $did == 2 ) /Ignore $2 $3-
$($+(.timer,$dname),2) off
}
;Alias that closes window, logs, and messages user
alias -l Ignore {
.msg $1 [ $readini(pmb.ini, n, Variables, Message) ]
if ($readini(pmb.ini, n, Variables, Logging) == 1) {
/var %x = $ini(pmb.ini,Messages,0)
if ( $calc(%x) < $readini(pmb.ini, n, Variables, Entries)) /writeini -n pmb.ini Messages $calc( %x +1) $asctime(mmm d h:nntt) - $1 $2-
}
if ($readini(pmb.ini, n, Variables, Window) == 1) /close -m $1
}
alias -l TagColor { return $+($chr(3),04,$chr(2),[) $+ $1- $+ $+($chr(3),01,],$chr(2)) }