--====[ Advertising Shield ]====--
-- Version: 1.0
-- By: NightLitch
-- Date: 2004-03-23
-- Converted by 6Marilyn6Manson6 by 10/09/2005
----------------------------------------------------
-- Set Botname
BotName = "-Adv-Shield-"
-- Set action for advertising ( 0=Warn / 1=Disconnect / 2=Kick / 3=Ban)
Action = 0
-- Set OK hubs that are allowed to be entered.
OkHubs = {
"myhub.myftp.org",
"myhub.myftp.org",
"myhub.myftp.org",
"myhub.myftp.org",
}
-- Accepted "sites" or triggers infront of the address
Sites = {
"www.",
"http://",
"ftp://",
"irc.",
"cs.",
}
-- Denyed/not allowed adver's sent in chat/pm
Adver = {
"no-ip",
"myftp",
"dyndns",
"dns2go",
"dynip",
"d2g",
"dynu",
"mine",
"kick-ass",
"sytes",
"homeip",
"mine",
"serveftp",
"servebeer",
"kicks-ass",
"gotdns",
"udgnet",
}
-- Extentions belonging to Adver above.
Ext = {
"com",
"net",
"org",
"se",
"nu",
}
-- Change characters.
CharCh = {
["%(dot%)"]=".",
["dot"]=".",
["%(%-%)"]="-",
["#"]="",
["!"]="",
["+"]="",
["%-"]="",
["*"]="",
["/"]="",
[" '"]="",
}
---------------------------------------------------------------
-- DON'T EDIT BELLOW --
tabAdvert = {}
function Main()
frmHub:RegBot(BotName)
end
function ChatArrival(curUser, data)
local Msg = ""
if string.sub(data, 1, 1) == "<" and not string.find(data,"> !") and not curUser.bOperator then
local _, _,line = string.find(data, "^%b<>%s+(.*)")
Msg = line
for i,v in CharCh do
line=string.gsub(line, i, v)
end
if CheckAdver(curUser,line,"in Main-Chat, typing",Msg)==1 then
return 1
end
elseif ( string.sub(data, 1, 4) == "$To:" ) then
local _,_,to,from,line = string.find(data, "%$To:%s(%S+)%sFrom:%s(%S+)%s$(.*)$")
Msg = line
for i,v in CharCh do
line=string.gsub(line, i, v)
end
if CheckAdver(curUser,line,"in PM to "..to..", typing",Msg)==1 then
return 1
end
elseif (string.sub(data,1,7) == "$MyINFO") then
local _,_,line = string.find(data, "%$MyINFO %$ALL %S+%s+(.*)<")
Msg = line
for i,v in CharCh do
line=string.gsub(line, i, v)
end
if CheckAdver(curUser,line,"in Tag Description",Msg)==1 then
return 1
end
end
end
function CheckAdver(curUser,line,msg,Msg)
local adver,extension = Verify(curUser.sName, line,Adver), Verify(curUser.sName, line,Ext)
if adver and extension and OkAdver(adver)~=1 then
tabAdvert = nil
tabAdvert = {}
local action = DoDisc(curUser,msg,line)
SendToOps("",curUser.sName.." ( "..curUser.sIP.." ) is "..action.." becouse advertising "..msg..": "..Msg)
return 1
end
end
function DoDisc(curUser,msg,line)
if Action==0 then
curUser:SendPM(BotName,"You are Warned for advertising "..msg..": "..line) return "Warned"
elseif Action==1 then
curUser:SendPM(BotName,"You are Disconnected for advertising "..msg..": "..line)
curUser:Disconnect() return "Disconnected"
elseif Action==2 then
curUser:SendPM(BotName,"You are Kicked for advertising "..msg..": "..line)
curUser:TempBan() return "Kicked"
elseif Action==3 then
curUser:SendPM(BotName,"You are Banned for advertising "..msg..": "..line)
curUser:Ban() return "Banned"
end
end
function OkAdver(adver)
for i,v in OkHubs do
if string.find(adver,v) then
return 1
end
end
end
function Verify(userdata, msg,table)
if not msg then return end
tmp =""
string.gsub(string.lower(msg), "([a-?0-9.:%-])", function(x) tmp = tmp..x end)
if not tabAdvert[userdata] then
tabAdvert[userdata] = { iClock = os.clock(), l1 = "", l2 = "", l3 = "", l4= "", l5= "",l6= "",l7= "",l8= "",l9 = tmp}
else
tabAdvert[userdata].iClock = os.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.."#"..tabAdvert[userdata].l7.."#"..tabAdvert[userdata].l8.."#"..tabAdvert[userdata].l9
for key, value in table do
if (string.find(Lines, string.lower(value), 1, 1)) then
return 1
end
end
end
c ya
don't work and don't doing me errors
I have only converted the script but I have not been able it to test. Task to make it between 2-3 hours
ok :)
Finished conversion by adding ToArrival for checking Personal Messages and bug fixed. Should now work...
--====[ Advertising Shield ]====--
-- Version: 1.0
-- By: NightLitch
-- Date: 2004-03-23
-- Converted by 6Marilyn6Manson6 by 10/09/2005
-- Bug fixed by Rincewind on 15/10/2005
----------------------------------------------------
-- Set Botname
BotName = "-Adv-Shield-"
-- Set action for advertising ( 0=Warn / 1=Disconnect / 2=Kick / 3=Ban)
Action = 1
-- Set OK hubs that are allowed to be entered.
OkHubs = {
"myhub.myftp.org",
"myhub.myftp.org",
"myhub.myftp.org",
"myhub.myftp.org",
}
-- Accepted "sites" or triggers infront of the address
Sites = {
"www.",
"http://",
"ftp://",
"irc.",
"cs.",
}
-- Denied/not allowed adver's sent in chat/pm
Adver = {
"noip",
"no-ip",
"myftp",
"dyndns",
"dns2go",
"dynip",
"d2g",
"dynu",
"mine",
"kick-ass",
"sytes",
"homeip",
"mine",
"serveftp",
"servebeer",
"kicks-ass",
"gotdns",
"udgnet",
}
-- Extentions belonging to Adver above.
Ext = {
"com",
"net",
"org",
"se",
"nu",
}
-- Change characters.
CharCh = {
["%(dot%)"]=".",
["dot"]=".",
["%(%-%)"]="-",
["#"]="",
["!"]="",
["+"]="",
["%-"]="",
["*"]="",
["/"]="",
[" '"]="",
}
---------------------------------------------------------------
-- DON'T EDIT BELLOW --
tabAdvert = {}
function Main()
frmHub:RegBot(BotName)
end
function ToArrival(curUser,data)
ChatArrival(curUser,data) return 1
end
function ChatArrival(curUser, data)
local Msg = ""
if string.sub(data, 1, 1) == "<" and not string.find(data,"> !") and not curUser.bOperator then
local _, _,line = string.find(data, "^%b<>%s+(.*)")
Msg = line
for i,v in CharCh do
line=string.gsub(line, i, v)
end
if CheckAdver(curUser,line,"in Main-Chat, typing",Msg)==1 then
return 1
end
elseif ( string.sub(data, 1, 4) == "$To:" ) then
local _,_,to,from,line = string.find(data, "%$To:%s(%S+)%sFrom:%s(%S+)%s$(.*)$")
Msg = line
for i,v in CharCh do
line=string.gsub(line, i, v)
end
if CheckAdver(curUser,line,"in PM to "..to..", typing",Msg)==1 then
return 1
end
elseif (string.sub(data,1,7) == "$MyINFO") then
local _,_,line = string.find(data, "%$MyINFO %$ALL %S+%s+(.*)<")
Msg = line
for i,v in CharCh do
line=string.gsub(line, i, v)
end
if CheckAdver(curUser,line,"in Tag Description",Msg)==1 then
return 1
end
end
end
function CheckAdver(curUser,line,msg,Msg)
local adver, extension = Verify(curUser.sName, line, Adver), Verify(curUser.sName, line, Ext)
if adver == 1 and extension == 1 and OkAdver(adver) ~= 1 then
tabAdvert = nil
tabAdvert = {}
local action = DoDisc(curUser,msg,line)
SendToOps("",curUser.sName.." ( "..curUser.sIP.." ) is "..action.." because advertising "..msg..": "..Msg)
return 1
end
end
function DoDisc(curUser,msg,line)
if Action==0 then
curUser:SendPM(BotName,"You are Warned for advertising "..msg..": "..line) return "Warned"
elseif Action==1 then
curUser:SendPM(BotName,"You are Disconnected for advertising "..msg..": "..line)
curUser:Disconnect() return "Disconnected"
elseif Action==2 then
curUser:SendPM(BotName,"You are Kicked for advertising "..msg..": "..line)
curUser:TempBan() return "Kicked"
elseif Action==3 then
curUser:SendPM(BotName,"You are Banned for advertising "..msg..": "..line)
curUser:Ban() return "Banned"
end
end
function OkAdver(adver)
for i,v in OkHubs do
if string.find(adver,v) then
return 1
end
end
end
function Verify(userdata, msg, table)
if not msg then return end
tmp =""
string.gsub(string.lower(msg), "([a-?0-9.:%-])", function(x) tmp = tmp..x end)
if not tabAdvert[userdata] then
tabAdvert[userdata] = { iClock = os.clock(), l1 = "", l2 = "", l3 = "", l4= "", l5= "",l6= "",l7= "",l8= "",l9 = tmp}
else
tabAdvert[userdata].iClock = os.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.."#"..tabAdvert[userdata].l7.."#"..tabAdvert[userdata].l8.."#"..tabAdvert[userdata].l9
for key, value in table do
if (string.find(Lines, string.lower(value), 1, 1)) then
return 1
end
end
return 0
end