DCC Killer is a simple, yet effective, snippet that provides users with the ability to block Dcc Sends & Chats from other users. It comes built with an optional friends list and log feature.
Email: z_modem@hotmail.com
Hawkee: http://www.hawkee.com/profile/805/
IRC: (Server: irc.freenode.net) (Channel: #reddit)
alias -l s return $f(settings.ini)
alias -l f return $+(",$scriptdir,$1,")
alias -l getval return $readini($s,$1,$2)
alias -l adcc if (!$dialog(adcc $+ $1)) dialog -m adcc $+ $1 adcc $+ $1
alias -l friend var %n = $1, %s = $s, %i = $ini(%s,Friends,0) | while (%i) { if ($ini(%s,Friends,%i) == %n) return 1 | dec %i }
alias -l fRefresh var %x = $ini($s,Friends,0), %d = $1 | did -r %d 1 | while (%x) { did -a %d 1 $ini($s,Friends,%x) | did -z %d 1 | dec %x }
alias -l do_unload echo -s DCC Killer has successfully been unloaded! If you wish to load again, type /load -rs " $+ $script $+ " $+ . | .unload -rs " $+ $script $+ "
alias -l check.settings.file {
%p = putval Setup
if ($getval(Setup,Send) == $null) { %p Send 0 }
if ($getval(Setup,Chat) == $null) { %p Chat 0 }
if ($getval(Setup,Log) == $null) { %p Log 0 }
}
alias -l putval {
var %w = writeini $s
if ($1 == Friends) {
if (!$3) { return }
var %2 = $strip($remove($2,$chr(32)))
if (%2 != $null) { %w $1 %2 1 }
return
}
writeini $s $1-
}
alias -l adcc.load.logs {
if (!$dialog(adccl)) {
.timerDCCKillerLogsRefresher off
return
}
var %d = $1, %s = $2-, %x = $ini(%s,Logs,0)
did -r %d 2
while (%x) {
did -a %d 2 $getval(Logs,$ini(%s,Logs,%x))
did -z %d 2
dec %x
}
}
; Dialogs
dialog -l adcc {
title "DCC Killer"
size -1 -1 116 80
option dbu
check "Enable", 1, 8 62 40 12, push
box "Options", 2, 8 4 100 52
check "Ignore Incoming Dcc Sends", 3, 16 16 76 8
check "Ignore Incoming Dcc Chats", 4, 16 28 76 8
check "Keep A Log of All Attempts", 5, 16 40 76 8
button "Friends List...", 6, 68 62 40 12
}
ON *:DIALOG:adcc:*:*: {
var %d = $dname, %e = $devent, %i = $did, %c = did -c %d
if (%e == init) {
if ($group(#dcckiller).status == on) %c 1
if ($getval(Setup,Send)) %c 3
if ($getval(Setup,Chat)) %c 4
if ($getval(Setup,Log)) %c 5
}
if (%e == sclick) {
if (%i == 1) $iif($did(%i).state,.enable,.disable) #dcckiller
if (%i == 3) putval Setup Send $did(%i).state
if (%i == 4) putval Setup Chat $did(%i).state
if (%i == 5) putval Setup Log $did(%i).state
if (%i == 6) adcc f
}
}
dialog -l adccf {
title "Friends"
size -1 -1 89 84
option dbu
list 1, 4 4 81 60, size hsbar vsbar
button "Add", 2, 4 68 24 12
button "Delete", 3, 30 68 24 12
button "Close", 4, 61 68 24 12, ok
box "", 5, 57 64 1 16
}
ON *:DIALOG:adccf:*:*: {
var %d = $dname, %e = $devent, %i = $did
if (%e == init) fRefresh %d
if (%e == sclick) {
if (%i == 2) {
var %u = $input(Enter a new friend for the list:,qe,New Entry)
if (%u) {
if ($Friend(%u)) { return $input(This user is already in your friends list.,io,Existing Entry) }
putval Friends %u 1
fRefresh %d
}
}
if ((%i == 3) && ($did(1).sel)) { remini $s Friends $did(1,$did(1).sel) | fRefresh %d }
}
}
dialog -l adccl {
title "Log"
size -1 -1 164 100
option dbu
box "DCC Attempt Log", 1, 4 4 156 92
list 2, 9 14 146 68, size vsbar hsbar
text "( Click Copies Items - Double-Click Clears The List )", 3, 9 85 146 8, center
}
ON *:DIALOG:adccl:*:*: {
var %d = $dname, %e = $devent, %i = $did, %s = $s
if (%e == init) { adcc.load.logs %d %s | .timerDCCKillerLogsRefresher 0 1 adcc.load.logs %d %s }
if ((%e == sclick) && (%i == 2)) clipboard $did(%i,$did(%i).sel)
if ((%e == dclick) && (%i == 2)) { did -r %d %i | .remini %s Logs }
}
dialog -l adcca {
title "About"
size -1 -1 92 72
option dbu
text "DCC Killer", 1, 4 4 84 8, center
text "v1.00", 2, 4 21 84 8, center
text "Author:", 3, 4 37 37 8, right
link "Zmodem", 4, 50 37 38 8
button "OK", 5, 31 52 28 14, ok
}
ON *:DIALOG:adcca:sclick:4:run mailto:z_modem@hotmail.com?Subject=DCC Killer
; Menus
menu menubar,status {
DCC Killer
.Main Dialog:adcc
.-
.Edit Friends List:adcc f
.View Logs:adcc l
.-
.Unload:$iif($input(Are you sure that you want to unload the DCC Killer addon?,wy,Verify Unload),do_unload)
.-
.About:adcc a
}
; Groups
#dcckiller off
CTCP *:DCC *: {
var %t = $2, %o = (, %c = )
if ($getval(Setup,Log)) { putval Logs $ctime %o %t %c %o $asctime($ctime,mm/dd/yy) %c %o $asctime($ctime,h:nn:sstt) %c %o $nick - $wildsite %c }
if (($getval(Setup,%t)) && (!$friend($nick))) {
.ignore -du30 $wildsite
.notice $nick Sorry, $nick $+ , I am not accepting any DCC %t $+ s right now. Please contact me if you wish to use this feature through a /query, /msg or simply find me in a channel and ask me. You have been ignored from any further DCC Chats or Sends for 30 seconds.
haltdef
}
}
#dcckiller end
on *:load:{
var %c = $+($crlf,$crlf), %s = $s
if ($isfile(%s)) {
check.settings.file
goto finish
}
var %p = putval Setup
%p Send 0
%p Chat 0
%p Log 0
.disable #dcckiller
:finish
return $input($+(DCC Killer,%c,v1.0,%c,Author: Zmodem,%c,In) order to begin $+ $chr(44) simply go to the menubar or status bar. Locate the popups called 'DCC Killer' and click 'Main Dialog'.,io,Welcome)
}
Hey guys, thanks for the kind words :) I'm working on something new and I hope to be done with it soon. I'm brainstorming some new ideas, so whatever you may want to see done, post to my wall http://www.hawkee.com/profile/805/. Thanks, again!