#---------------------- #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.