🔔 Çevrimdışı bildirim almak ister misiniz?
Bir konuya etiketlendiğinizde, özel mesaj aldığınızda, bir mesajınız alıntılandığında forumda olmasanız bile anlık bildirim almak için lütfen izni verin.
buyrun size direk bu kodun orjinalini çevrilmemiş halini vereyim..bundan daha iyi badnick scripti piyasada yok. pek çoğunu denemiş biri olarak rahatlıkla söyleyebilirim.
not: kopyala -yapıştır yaparken Windows notepad ile eklenen kodlarda kayma bozulma bazı karakterlerin yok olması vs gibi problemler olabiliyor.bu tür kodlarda size bu kodları kaydetmek için [Üye Olmadan Linkleri Göremezsiniz. Üye Olmak için TIKLAYIN...] notepad++'yı önerebilirim bu tür sorunlar bunla olmaz copy-paste olayında..
Kod: Kodu kopyalamak için üzerine çift tıklayın!
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# BADNICK.TCL
set badnick_version "2.3"
# PREVIOUS CHANGELOG:
# (removed the changelog entries about e-ops; using the eBotnet system made it unused)
# Unk: 12Jan2004: TODO: Allow these to be done in PM.. Find a way to doglobal securly.
# Unk: 11Jan2004: Initial creation
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# TODO:
# Check the ban mask format, probably using a regexp.
# Add a way to do it in PM.. bind msg o|o blahbadnick #chan *!*@*
# Make the banlist date/time readable for humans :)
#
#
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# init on rehash
set listbadnick 0
unset listbadnick
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# LISTBANS - LISTBADNICK
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind pub - 'ListBadNick BadNick:pub:ListBadNick
bind pub - 'ListBadNicks BadNick:pub:ListBadNick
bind pub - 'ListBans BadNick:pub:ListBadNick
proc BadNick:pub:ListBadNick {nick uhost hand chan arg} {
if { ![isop $nick $chan] && ![ishalfop $nick $chan] } {
return 0
}
global listbadnick
if { [ info exists listbadnick ] == 1 } {
putserv "PRIVMSG $nick :Someone is currently viewing a Banlist, please try again later."
return 0
}
set listbadnick 1
puthelp "PRIVMSG $nick :Start Internal Banlist for $chan:"
foreach ban [banlist $chan] {
# hostmask, comment, expiration timestamp, time added, last time active, and creator
# ban mask
set banmask [lindex $ban 0]
# comment
set bancomment [lindex $ban 1]
# expire - not used, all are perm
# set banexpire [ctime [expr [lindex $ban 2]]]
# time added
set bantimeadded [ctime [expr [lindex $ban 3]]]
# time last active
set banlastactive [ctime [expr [unixtime] - [lindex $ban 4]]]
# creator
set bancreator [lindex $ban 5]
if { $arg == "full" | $arg == "all" } {
puthelp "PRIVMSG $nick :$chan Banlist: $banmask ($bancomment) added by $bancreator on $bantimeadded (Last active: $banlastactive)"
} elseif { $arg == "raw" } {
puthelp "PRIVMSG $nick :$chan Banlist: $ban"
} else {
puthelp "PRIVMSG $nick :$chan Banlist: $banmask ($bancomment) by $bancreator"
}
}
puthelp "PRIVMSG $nick :End Internal Banlist for $chan"
unset listbadnick
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# ADDBAN - ADDBADNICK
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind pub - 'AddBadNick BadNick:pub:AddBadNick
bind pub - 'AddBan BadNick:pub:AddBadNick
proc BadNick:pub:AddBadNick {nick uhost hand chan arg} {
# Where the hell does this come from ??
global EngNickChangeTrigWarn EngNickChangeMsgBan EngNickChangeBanTime
if { ![isop $nick $chan] && ![ishalfop $nick $chan] } {
return 0
}
set name [lindex [split $arg] 0]
set reason [join [lrange [split $arg] 1 end]];
if { $reason == "" } {
puthelp "NOTICE $nick :Please provide a reason."
return 0
}
# No need to retest the reason, we just did it...
if { ($name == "") || ($reason == "") } {
puthelp "NOTICE $nick :Please provide a name and a reason."
return 0
}
if {( [string first "!" $name ] == -1 )} {
newchanban $chan $name!*@* $nick \"$reason\" 0 none
puthelp "NOTICE $nick :$name!*@* should be added to $chan nickban list."
} else {
newchanban $chan $name $nick \"$reason\" 0 none
puthelp "NOTICE $nick :$name should be added to $chan nickban list."
}
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# REMBAN - REMBADNICK
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
bind pub - 'RemBadNick BadNick:pub:RemBadNick
bind pub - 'RemBan BadNick:pub:RemBadNick
proc BadNick:pub:RemBadNick {nick uhost hand chan arg} {
# Where the hell does this come from ??
global EngNickChangeTrigWarn EngNickChangeMsgBan EngNickChangeBanTime
if { ![isop $nick $chan] && ![ishalfop $nick $chan] } {
return 0
}
if { ($arg == "") } {
puthelp "NOTICE $nick :You need to tell me which ban to remove =)"
return 0
}
set name [lindex $arg 0]
if {( [string first "!" $name ] == -1 )} {
if ([killchanban $chan $name!*@*]) {
puthelp "NOTICE $nick :$name!*@* should be removed from $chan nickban list"
} else {
puthelp "NOTICE $nick!*@* :Nickban wasn't removed."
}
return 0
}
if ([killchanban $chan $name]) {
puthelp "NOTICE $nick :$name should be removed from $chan nickban list"
} else {
puthelp "NOTICE $nick :Nickban wasn't removed!"
}
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# FILTER
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
proc BadNick:filter {str} {
# regsub -all --
{\003[0-9]{0,2}(,[0-9]{0,2})?|\017|\037|\002|\026|\006|\007} $str "" str
regsub -all -nocase {[^a-z*?@!]} $str "" str
return $str
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
putlog "BadNick v$badnick_version loaded."