rendered paste body#----------------------
#LEECH MOD SCAN SCRIPT-
#----------------------
# SeveredCross 10Oct07: Fixed up some extra variables, spelling, etc.
# 10Oct07: Modified the ban check code to just ban anything that identifies
# as eMule but is not 0.48a
# 10Oct07: General cleanup in the code to make it more readable and hopefully more efficient.
# 11Oct07: Add check for SMIRC version equal to that in latest eMule
# if eMule tag is not found--some mods don't use the eMule tag
# but do use the SMIRC tag (eg. MP3 eDonkey Search).
# 11Oct07: Bugfixes (typos, variables that should've been brought in but weren't, etc.)
# 11Oct07: More bugfixes--fixed a bug that was banning in both channels even
# if offender was only in 1 chan. Renamed some variables along the way
# to make it more clear as to what they are there for.
# Unk 17Jun04: Don't let netsplits flood the bot..
# feroz 06Jun04: TODO-Check the bad mod list
#------->> Set Leech mods <<-----
set BadList {
"*{[VipeR} V7.0\*"
"*SharkX*"
"*LoRe*"
"*eVortex*"
"*AcidStorm*"
"*Egomule"
"*eDevil*"
"*eSl@d3vil*"
"*Legolas"
"*X-Mule*"
"*Mega*"
"*Funeral*"
"*Miciolino*"
"*g@mer*"
"*gamer*"
"*Icemule*"
"*FriendMod*"
"*Element*"
"*D-Unit*"
"*Korsan*"
"*Imperator*"
"*Hunter*"
"*Freeza*"
"*BuzzFuzz*"
"*BlackMule*"
"*Chiefcooker*"
"*rammstein*"
"*Merrek*"
"*Hardmule*"
"*DaReDeVil*"
"*Energy*"
"*Pharao*"
"*Brasil*"
"*Boost*"
"*-=NOS=-*"
"*darkmule*"
"*Rasmoe*"
"*Mison*"
"*eSladevil*"
"*Dodge*"
"*.:Funeral:.*"
"*ArGo*"
"*vortex*"
"*Omega*"
"*Dagos15*"
"*supaleecher*"
"*eD@sevil*"
"*...S.I.B...:=-*"
"*eMuleG@m3r΄s*"
"*LSD*"
"*Ketamine*"
"*www.00de.de*"
"*00de-Edition*"
"*free-romz*"
"*X-Mule*"
"*pHoeniX*"
"*Leecher*"
"*DO23*"
"*eMule1.51*"
"*AdunanzA*"
"*lite*"
"*Turbomod*"
"*LEanmule*"
"*ExLite*"
"*Extreme*"
"*TCMatic*"
"*LoRe*"
"*eVortex*"
"*AcidStorm*"
"*Egomule"
"*eDevil*"
"*eSl@d3vil*"
"*Legolas"
"*X-Mule*"
"*Mega*"
"*Funeral*"
"*TLN*"
"*Tombstone*"
"*emule.de*"
"*Miciolino*"
"*g@mer*"
"*gamer*"
"*Icemule*"
"*FriendMod*"
"*Element*"
"*D-Unit*"
"*Korsan*"
"*Imperator*"
"*Hunter*"
"*Freeza*"
"*BuzzFuzz*"
"*BlackMule*"
"*Chiefcooker*"
"*rammstein*"
"*Merrek*"
"*Hardmule*"
"*DaReDeVil*"
"*Energy*"
"*Pharao*"
"*Brasil*"
"*Boost*"
"*-=NOS=-*"
"*darkmule*"
"*Rasmoe*"
"*Mison*"
"*eSladevil*"
"*Dodge*"
"*.:Funeral:.*"
"*ArGo*"
"*vortex*"
"*Omega*"
"*Dagos15*"
"*supaleecher*"
"*eD@sevil*"
"*...S.I.B...:=-*"
"*eMuleG@m3rs*"
"*LSD*"
"*sivka*"
"*hebMule/Onyx*"
"*SNAKE*"
"*Ketamine*"
"*www.00de.de*"
"*00de-Edition*"
"*free-romz*"
"*FREEANGEL*"
"*Razorback*"
"*emuleersion*"
"*Exorzist*"
"*NetF*"
"*ZZUL*"
"*LHeMule*"
"*MP3 eDonkey Search*"
"*Sion*"
"*€xORz!§T*"
"*VipeR V6.2*"
"*Blackbeard*"
"*VeryCD Build*"
"*EvoStar*"
"*BETA 1*"
"*iONiX*"
"*File Swap*"
"*CN-3*"
"*TK4*"
"*Zz evoL*"
"*TCMatic*"
"*Saugstube-MoD*"
"*eMuleFuture*"
"*Arabella*"
"*NextEvolution*"
"*VMULE*"
"*eMule0.42*"
"*eMule0.43a*"
"*eMule0.43b*"
"*eMule0.44a*"
"*eMule0.44b*"
"*eMule0.44c*"
"*eMule0.44d*"
"*eMule0.45a*"
"*eMule0.45b*"
"*eMule0.46a*"
"*eMule0.46b*"
"*eMule0.46c*"
"*eMule0.47a*"
"*eMule0.47b*"
"*eMule0.47c*"
"*emule0.48a-2*"
"*eMule0.48a BETA1*"
"*eMule2.0a*"
"*eMule0.48a | NFO.Co.iL v10.0*"
"*Goop.Co.iL*"
}
set BadRealNameList {
}
#----->> Info chan <<-----
set NotificationChan "#taksh"
#----->> Monitoring chans <<-----
set MonitoringChans {
"#emule-greek"
"#eMule-greek"
}
#----->> Ban Time <<-----
set BadModBanTime 5
#----->> Ban Reason <<-----
set BadModReason "Exete mod h palia ekdosh toy eMule oi opoies den yposthrizontai edw.Parakalw katevaste thn trexousa OFFICIAL 0.48a apo @ www.emule-project.net"
#----->> Latest eMule Version String <<-----
set LatesteMuleVersion "eMule0.48a(SMIRCv00.69)"
#----->> Bind The Various Checks <<-----
bind join - "* *" brealname:join
bind raw - 311 brealname:check
#----->> On Join check <<-----
proc brealname:join {nick host hand chan} {
global WhoisNick WhoisNickWarn
if {[strlwr $nick] == [strlwr $::botnick] || [matchattr $hand of|fo $chan]} {
return 0
}
if {([info exists WhoisNickWarn($host)] == 1)} {
return 0
}
set WhoisNickWarn($host) 1
timer 2 "unset WhoisNickWarn($host)"
if {([info exists WhoisNick] == 1)} {
if {$WhoisNick == 3} {
putlog "$WhoisNick Whois max"
return 0
}
incr WhoisNick
} else {
set WhoisNick 1
utimer 2 "unset WhoisNick"
}
putserv "WHOIS $nick"
}
#----->> Realname check to decide whether to ban or not <<-----
proc brealname:check {from key arg} {
global NotificationChan versionCount
global MonitoringChans BadRealNameList
global BadModReason BadModBanTime
set UserName [lindex [split $arg] 1]
set UserRealName [ctrl:filter [string range $arg [expr [string first : $arg]+1] end] ]
set BotNick [lindex [split $arg] 0]
if {[string match -nocase "*eMule*" $UserRealName]} {
if {![string match -nocase "eMule0.48a(SMIRCv00.69)" $UserRealName]} {
foreach MonitoringChan $MonitoringChans {
if {[onchan $UserName $MonitoringChan]} {
putserv "PRIVMSG $NotificationChan :ACTION 4BadMod Info:3 $UserName is on $MonitoringChan"
newchanban $MonitoringChan $UserName!*@* $BotNick $BadModReason $BadModBanTime sticky
putkick $MonitoringChan $UserName $BadModReason
}
}
}
}
if {![string match -nocase "*eMule*" $UserRealName]} {
if {[string match -nocase "*SMIRC*" $UserRealName]} {
if {![string match -nocase "*SMIRCv00.69"]} {
foreach MonitoringChan $MonitoringChans {
if {[onchan $UserName $MonitoringChan]} {
putserv "PRIVMSG $NotificationChan :ACTION 4BadMod Info:3 $UserName is on $MonitoringChan"
newchanban $MonitoringChan $UserName!*@* $BotNick $BadModReason $BadModBanTime sticky
putkick $MonitoringChan $UserName $BadModReason
}
}
}
}
foreach BadRealName $BadRealNameList {
if {[string match -nocase $BadRealName $UserRealName]} {
foreach MonitoringChan $MonitoringChans {
if {[onchan $UserName $MonitoringChan]} {
putserv "PRIVMSG $NotificationChan :ACTION 4BadMod Info:3 $UserName is on $MonitoringChan"
newchanban $MonitoringChan $UserName!*@* $BotNick $BadModReason $BadModBanTime sticky
putkick $MonitoringChan $UserName $BadModReason
}
}
}
}
}
}
#----->> Filter to strip out unwanted characters, by ppslim <<-----
proc ctrl:filter {str} {
regsub -all -- {\003[0-9]{0,2}(,[0-9]{0,2})?|\017|\037|\002|\026|\006|\007} $str "" str
return $str
}
putlog "Leech Mod Scan loaded! -- Scanning on: $MonitoringChans / Messaging on: $NotificationChan"
#Leech Mod Scan Script By feroz.