Hi,
I got this anti-advert script, but it does the job too well. I'd like to edit it so it doesn't kick user when they mention other hubs or servers in the main chat, only when they do in PMs. Here's the script:
-Lucifer 6.6.6-- updated version
--This is a Powerful AntiAdvertising Script
--Powered by Demone.Astaroth and OpiumVolage
--History: Base='multiline antiadvertise' by OpiumVolage (your tables simplify the work I did until that moment). Here its features:
-- 1)Script can block this types of advertisement: A) example.no-ip.com
-- B) e x a m p l e . n o - i p . c o m
-- C)example.
-- no-
-- ip.
-- com
-- D)e
-- x
-- a
-- m
-- p
-- l
-- e
-- .
-- n
-- o
-- -
-- i
-- p
-- .
-- c
-- o
-- m
-- 2)You can insert valid addresses (like yours) in trigs, so bot won't kick you
-- 3)Users conversating with ops don't get kicked
-- 4)Why the Timer? It cleans memory.
-- Demone.Astaroth addons: 1)added an huge list of addresses
-- 2)When advertising: user advised on Pm before disconnection; Bot sends to all in main chat the kicking
message (without IP);
-- advertise-infos send to Op-chat directly without troubling any Op with Pms! Infos contain user's IP, user
To(if PM) and last message
-- Just replace INSERT.HERE.YOUR.OP-CHAT.NAME fields with yours.
-- 3)inserted Disconnect and TimeBan (15 minutes) instead of gagging user
-- 4)Prevented very splitted addresses (with more tabAdvert lines)
-- 5)added Control-addresses: user isn't kicked for these addresses but Ops are informed in any case.
-- this is useful for friend-hubs addresses, if u also want to control them
-- 6)added ControlUser status: if u're scary about your vips advertising their hubs and stealing you user,
-- you can't insert the tag [VIP] or anything else in the specific space: they will not
-- get kicked for any addresses, but in case of typing a Control-address, Ops will be
-- informed.
-- 7)Fixed some bug (Thanks Opium)
-- 8)Added a new string-pieces find way to catch advertises
BotName = "Wolland"
advtrigs = {"dns2go","myftpsite","servebeer","mine.nu","ip.com","dynip","depecheconnect.com","zapto.org",
"staticip","serveftp","ipactive","ip.org","no-ip","servegame","gotdns.org","ip.net","ip.co.uk",
"ath.cx","dyndns","68.67.18.75","clanpimp","idlegames","sytes","unusualperson.com",
"24.184.64.48","uni.cc","151.198.149.60","homeunix","24.209.232.97","ciscofreak.com",
"deftonzs.com","24.187.50.121","flamenap","xs4all","serveftp","point2this.com","ip.info",
"myftp","d2g","151.198.149.60","24.184.64.48","orgdns","myip.org","stufftoread.com",
"ip.biz","dynu.com","mine.org","kick-ass.net","darkdata.net","ipme.net","udgnet.com","homeip.net",
"e-net.lv","newgnr.com","bst.net","bsd.net","ods.org","x-host","bounceme.net","myvnc.com",
"kyed.com","lir.dk","finx.org","sheckie.net","vizvaz.net","snygging.net","kicks-ass.com","nerdcamp.net",
"cicileu.","3utilities.com","myftp.biz","redirectme.net","servebeer.com","servecounterstrike.com",
"servehalflife.com","servehttp.com","serveirc.com","servemp3.com","servepics.com","servequake.com",
"damnserver.com","ditchyourip.com","dnsiskinky.com","geekgalaxy.com","net-freaks.com","ip.ca",
"securityexploits.com","securitytactics.com","servehumour.com","servep2p.com","servesarcasm.com",
"workisboring.com","hopto","64.246.26.135","213.145.29.222","dnsalias"}
validtrigs = {"myhub.no-ip.com","multihub2.no-ip.com", "greatfriend.no-ip.com"} --insert here your addresses (like yours or multihub ones or
great friend's hub ;) )
controltrigs={["classicalmusicke.no-ip.info"]=1,["grandclassic.serveftp.org"]=2,["pieltre.serveftp.com"]=3, ["hub4"]=4, ["hub5"]=5} --insert here
addresses you want to be informed (no kick)
tabAdvert = {}
function Main()
frmHub:RegBot(BotName)
SetTimer(60000)
StartTimer()
end
function OnTimer()
for key, value in tabAdvert do
if (tabAdvert[key].iClock > clock()+60) then
tabAdvert[key]=nil
end
end
end
function DataArrival(user, data)
if not user.bOperator then
if strsub(data, 1, 1) == "<" then
local _, _, msg = strfind(data, "^%b<>%s+(.*)|")
if Verify(user.sName, msg) then
catch=strsub(user.sName,1,5) --5 is counting chars of the tag below: if u change [VIP], change it!
if catch=="[VIP]" then --ControlUser status : insert users Tag u don't want to get kicked
else
tabAdvert[user.sName]=nil
SendToAll( BotName, user.sName.." get slaughtered by Lucifer for advertising!")
user:SendPM(BotName, "Please don't advertise for other hubs!")
user:Disconnect();
user:TimeBan(15);
s,e,onlymes = strfind(data, "%b<> (.*)")
SendPmToOps ("Pythia", "User "..user.sName.." with IP "..user.sIP.." advertised in main chat
saying: "..onlymes.."")
end
end
for key, value in controltrigs do
if( strfind( strlower(data), key) ) then
s,e,onlymes = strfind(data, "%b<> (.*)")
SendPmToOps ("Pythia", "Control: User "..user.sName.." with IP "..user.sIP.." told in main:
"..onlymes.."")
end
end
spam=0
if( strfind( strlower(data), "no",1,1) ) and ( strfind( strlower(data), "ip.",1,1) ) then
if ( strfind( strlower(data), "com",1,1) ) or ( strfind( strlower(data), "org",1,1) ) or ( strfind( strlower(data),
"info",1,1) ) then
spam=spam+1; end; end;
if( strfind( strlower(data), "dns",1,1) ) and ( strfind( strlower(data), "2",1,1) ) and ( strfind( strlower(data), "go",1,1) )
then
spam=spam+1; end
if( strfind( strlower(data), "dy",1,1) ) and ( strfind( strlower(data), "nu",1,1) ) then
if( strfind( strlower(data), ".net",1,1) ) or ( strfind( strlower(data), ".com",1,1) ) then
spam=spam+1;end; end
if( strfind( strlower(data), "d n s a",1,1) ) or ( strfind( strlower(data), "d n s .",1,1) ) or ( strfind( strlower(data), "d n s
2",1,1) ) or ( strfind( strlower(data), "o d s .",1,1) ) or ( strfind( strlower(data), "d y n",1,1) ) then
spam=spam+1;end
if spam>0 then
SendToAll( BotName, user.sName.." get slaughtered by Lucifer for advertising!")
user:SendPM(BotName, "I slaughtered you! Don't try again to advertise!")
user:Disconnect();
user:TimeBan(15);
s,e,onlymes = strfind(data, "%b<> (.*)")
SendPmToOps ("Pythia", "User "..user.sName.." with IP "..user.sIP.." advertised in main chat
saying: "..onlymes.."")
end
elseif strsub(data, 1, 4) == "$To:" then
local _, _, to, from, msg = strfind(data, "^%$To:%s+(%S+)%s+From:%s+(%S+)%s-%$%b<>%s+(.*)|")
local nick = GetItemByName(to)
if not nick.bOperator then
local userdata = to.." "..from
if Verify(userdata, msg) then
catch=strsub(user.sName,1,16)
if catch=="['??SemiDeus??']" then
else
tabAdvert[userdata] = nil
SendToAll( BotName, user.sName.." get slaughtered by Lucifer for advertising!")
user:SendPM(BotName, "I slaughtered you! Don't try again to advertise!")
user:Disconnect();
user:TimeBan(15);
s,e,whoTo,from,mes =
strfind(data,"$To:%s+(%S+)%s+From:%s+(%S+)%s+$%b<>%s+(.*)")
SendPmToOps ("INSERT.HERE.YOUR.OP-CHAT.NAME", "User "..user.sName.."
with IP "..user.sIP.." advertised in main chat saying to "..whoTo.." this: "..mes.."")
end
end
for key, value in controltrigs do
if( strfind( strlower(data), key) ) then
s,e,whoTo,from,mes =
strfind(data,"$To:%s+(%S+)%s+From:%s+(%S+)%s+$%b<>%s+(.*)")
SendPmToOps ("INSERT.HERE.YOUR.OP-CHAT.NAME", "Control: User
"..user.sName.." with IP "..user.sIP.." said to "..whoTo.." this: "..mes.."")
end
end
spam=0
if( strfind( strlower(data), "no",1,1) ) and ( strfind( strlower(data), "ip.",1,1) ) then
if ( strfind( strlower(data), "com",1,1) ) or ( strfind( strlower(data), "org",1,1) ) or ( strfind(
strlower(data), "info",1,1) ) then
spam=spam+1; end; end;
if( strfind( strlower(data), "dns",1,1) ) and ( strfind( strlower(data), "2",1,1) ) and ( strfind( strlower(data),
"go",1,1) ) then
spam=spam+1; end
if( strfind( strlower(data), "dy",1,1) ) and ( strfind( strlower(data), "nu",1,1) ) then
if( strfind( strlower(data), ".net",1,1) ) or ( strfind( strlower(data), ".com",1,1) ) then
spam=spam+1;end; end
if( strfind( strlower(data), "d n s a",1,1) ) or ( strfind( strlower(data), "d n s .",1,1) ) or ( strfind(
strlower(data), "d n s 2",1,1) ) or ( strfind( strlower(data), "o d s .",1,1) ) or ( strfind( strlower(data), "d y n",1,1) ) then
spam=spam+1;end
if spam>0 then
SendToAll( BotName, user.sName.." get slaughtered by Lucifer for advertising!")
user:SendPM(BotName, "I slaughtered you! Don't try again to advertise!")
user:Disconnect();
user:TimeBan(15);
s,e,whoTo,from,mes =
strfind(data,"$To:%s+(%S+)%s+From:%s+(%S+)%s+$%b<>%s+(.*)")
SendPmToOps ("INSERT.HERE.YOUR.OP-CHAT.NAME", "User "..user.sName.."
with IP "..user.sIP.." advertised in main chat saying to "..whoTo.." this: "..mes.."")
end
end
end
end
end
function Verify(userdata, msg)
if not msg then return end
tmp =""
gsub(strlower(msg), "([a-z0-9.:%-])", function(x) tmp = tmp..x end)
if not tabAdvert[userdata] then
tabAdvert[userdata] = { iClock = clock(), l1 = "", l2 = "", l3 = "", l4= "", l5= "",l6= "",l7= "",l8= "",l9 = tmp}
else
tabAdvert[userdata].iClock = clock()
tabAdvert[userdata].l1 = tabAdvert[userdata].l2
tabAdvert[userdata].l2 = tabAdvert[userdata].l3
tabAdvert[userdata].l3 = tabAdvert[userdata].l4
tabAdvert[userdata].l4 = tabAdvert[userdata].l5
tabAdvert[userdata].l5 = tabAdvert[userdata].l6
tabAdvert[userdata].l6 = tabAdvert[userdata].l7
tabAdvert[userdata].l7 = tabAdvert[userdata].l8
tabAdvert[userdata].l8 = tabAdvert[userdata].l9
tabAdvert[userdata].l9 = tmp
end
local Lines =
tabAdvert[userdata].l1..tabAdvert[userdata].l2..tabAdvert[userdata].l3..tabAdvert[userdata].l4..tabAdvert[userdata].l5..tabAdvert[userdata].l6..tabAd
vert[userdata].l7..tabAdvert[userdata].l8..tabAdvert[userdata].l9
for key, value in advtrigs do
if (strfind(Lines, strlower(value), 1, 1)) then
for key2, value2 in validtrigs do
if (strfind(Lines, strlower(value2), 1, 1)) then
return nil
end
end
return 1
end
end
end
thanks in advance,
pieltre
Well I must say that this script doesn't do the work it should... Yes it kicks when typing advertising's, BUT!
It also kicks users IF the type an Allowed HUBADDRESS or SITE.
This is a powerfull script indeed but test my advise and be a user
a type an allowed hubaddress you will get kicked for it.
Hi,
thanks for your reply. I was wondering if you knew of one that worked well, from your own experience. Of course, as you imagine, I already checked myself, but since i'm rather lua illiterate, I can't really tell if the script works or not, until I see my users go mad or I hear from a user on a board that I've used a dead dumb script...
cheers,
pieltre
QuoteOriginally posted by Pieltre
Hi,
thanks for your reply. I was wondering if you knew of one that worked well, from your own experience. Of course, as you imagine, I already checked myself, but since i'm rather lua illiterate, I can't really tell if the script works or not, until I see my users go mad or I hear from a user on a board that I've used a dead dumb script...
cheers,
pieltre
this (http://board.univ-angers.fr/thread.php?threadid=815&boardid=12) works well and can easely be modified 2 only filter pm's.
and it's friendlyer, doesn't kick @ all.
works by replacing the url's for your own.
plop