PtokaX forum

Archive => Archived 5.0 boards => Help with scripts => Topic started by: Crni_Panter on 02 May, 2005, 12:24:37

Title: convert from lua4 to lua5
Post by: Crni_Panter on 02 May, 2005, 12:24:37
hello

i need thes scripts converted to lua5 if it is posible
sorry for my bad english
-------------------------------------------------------------
1. script
-------------------------------------------------------------
--//RangeBlaster v 0.1 by veselo-srce
--//IP Keys written by ilo6

Bot = "[Kazna]"

Ranges = {}

function Main()
   --frmHub:RegBot(Bot)
   LoadIps()
end

function LoadIps()
   local tmp = 0
   local handle = openfile("txt/ranges.dat","r")
   line = read(handle)
   while line do
      tmp = tmp + 1
      local s,e,ipr1,ipr2 = strfind(line,"(%S+)|(%S+)")
      if ipr2 == nil then
         SendToAll(Bot,"Error on line "..line)
      end
      local s,e,ipa1,ipb1,ipc1,ipd1 = strfind(ipr1, "(%d*).(%d*).(%d*).(%d*)")
      local s,e,ipa2,ipb2,ipc2,ipd2 = strfind(ipr2, "(%d*).(%d*).(%d*).(%d*)")
      si1 = CheckNumber(ipa1)..CheckNumber(ipb1)..CheckNumber(ipc1)..CheckNumber(ipd1)
      si2 = CheckNumber(ipa2)..CheckNumber(ipb2)..CheckNumber(ipc2)..CheckNumber(ipd2)
      Ranges[si1] = si2
   line = read(handle)
   end

end

function Blocked(userip)
   local s,e,range1,range2,range3,range4 = strfind(userip,"(%d+).(%d+).(%d+).(%d+)")
   checker = CheckNumber(range1)..CheckNumber(range2)..CheckNumber(range3)..CheckNumber(range4)

   --SendToAll(Bot,"IP-Test..."..checker)

   for i,p in Ranges do
      local s,e,xstart = strfind(i, "(%d*)")
      local s,e,xend = strfind(p, "(%d*)")
   
      if checker > xstart and checker < xend then
         collectgarbage()
         flush()
         return 1
      else
      end
   end   
end

function CheckNumber(number)
   numbera = tonumber(number)
   if numbera < 10 then
      numbera = "00"..number
   elseif numbera < 100 then
      numbera = "0"..number
   else
      numbera = number
   end
   return numbera
end

function DataArrival(user,data)
   if strsub(data, 1, 13) == "$ValidateNick" then
      if Blocked(user.sIP) == 1 then
         user:SendData(Bot, "Svakojake BANDITE ne primamo na hub......ODJEBI....!!!!.")
         user:SendData(Bot, "HAHAHAHAHAHAHAHAHAHAHAHA.....")
         SendToOps(Bot, "? OP MSG ? User: "..data..", sa IP: ["..user.sIP.."], pokusava nesto nemoguce: "..Bot.." - Ne dajem mangupu da udje :)))))).....")
         user:TempBan()
         user:Disconnect()
      end
   end
end


-------------------------------------------------------------------------
2. script
-------------------------------------------------------------------------
----------------------------------------------------
-- Set Botname
BotName = "Pandur"
-- Set action for advertising ( 0=Warn / 1=Disconnect / 2=Kick / 3=Ban)
Action = 0
-- Set OK hubs that are allowed to be entered.
OkHubs = {
"veselo-srce.no-ip.org",
"veselo-srce2.no-ip.org",
"myhub",
"myhub",
}
-- Accepted "sites" or triggers infront of the address
Sites = {
"www.",
"http",
"ftp",
"irc.",
"ilo6",
}
-- Denyed/not allowed adver's sent in chat/pm
Adver = {
"noip.com",
"noicom",
"noi.com",
"noip.co",
"noipco",
"nop.com",
"nopcom",
"ipcom",
"no ip com",
"no.ip",
"noip",
"n.o.i.p.c.o.m",
"com",
"c o m",
"noip.info",
"n.o.i.p.i.n.f.o",
"noiinfo",
"noi.info",
"ipinfo",
"nopinfo",
"noipinfo",
"nop.info",
"nopinf",
"noip.inf",
"no-ip.info",
"no-ip",
"info",
"i n f o",
"n.o.i.p.o.r.g",
"noip.org",
"noiporg",
"iporg",
"no-ip.org",
"myftp",
"m.y.f.t.p",
"dyndns",
"d.y.n.d.n.s",
"dns2go",
"d.n.s.2.g.o",
"dynip",
"d.y.n.i.p",
"d2g",
"dynu",
"dynu.com",
"dynucom",
"d.y.n.u.c.o.m",
"bosniahub.com",
"m.i.n.e",
"kick-ass.net",
"k.i.c.k.a.s.s.n.e.t",
"kickassnet",
"sytes.net",
"s.y.t.e.s.n.e.t",
"sytesnet",
"homeip",
"h.o.m.e.i.p",
"homeip",
"mine.nu",
"m.i.n.e.n.u",
"minenu",
"servebeer",
"s.e.r.v.e.b.e.e.r",
"zappto",
"z.a.p.p.t.o",
"serveftp",
"s.e.r.v.e.f.t.p",
"sytes",
"s y t e s",
"abductor",
"amirhibeljicnino",
"banjaluka23",
"balkan87",
"balkanspies",
"BigBen",
"B.i.g.B.e.n",
"bosniahub",
"bosnahub",
"crvenazvezda",
"c.r.v.e.n.a.z.v.e.z.d.a",
"dubica",
"d.u.b.i.c.a",
"elko18",
"gojzar",
"g.o.j.z.a.r",
"gollum",
"g.o.l.l.u.m",
"zabavahub",
"gorenjska",
"g.o.r.e.n.j.s.k.a",
"gypsyhub",
"hotelbalkan",
"scafe",
"s.c.a.f.e",
"s.i.o.f.f",
"ircmostar",
"nasepodrinje",
"studiomuzika",
"starcevica",
"sloveniaonline",
"sloveniaboss",
"sloskate",
"SLOShareReactor",
"sarajevo1984",
"delijesever",
"d.e.l.i.j.e.s.e.v.e.r",
"amirhibeljicnino",
"banjaluka23",
"balkan87",
"srbijanoipcom",
"hopto.org",
"h.o.p.t.o.o.r.g",
"hoptoorg",
"zappto.org",
"z.a.p.t.o.o.r.g",
"hub.sioff.net",
"h.u.b.s.i.o.f.f.n.e.t",
"hub.scafe.ws",
"h.u.b.s.c.a.f.e.w.s",
"gollum.ho.com",
"abductornoipcom",
"asczaptoorg",
"amirhibeljicninonoipinfo",
"banjaluka23noipinfo",
"balkan87noipinfo",
"balkanacnoipcom",
"balkanspiesservebeercom",
"beograddynucom",
"b.e.o.g.r.a.d.d.y.n.u.c.o.m",
"BigBensytesnet",
"bihnoipinfo",
"bosniahubcom",
"bosnahubnoipinfo",
"beograd.no-ip.com",
"b.e.o.g.r.a.d.n.o.i.p.c.o.m",
"bosniahubnet",
"BosniaHubnet",
"bosnianoipinfo",
"bosnianoipcom",
"cmoknoipcom",
"crousanoipcom",
"croatiaserveftpcom1420",
"croatiaserveftpcom",
"croatianoiporg",
"croatiagotdnsorg3285",
"croatiagotdnsorg",
"crvenazvezdanoipinfo",
"damiraganoiporg",
"dijasporanoipcom",
"DCHOCOM",
"dchocom",
"d.c.h.o.c.o.m",
"dcbalcannet",
"d.c.b.a.l.c.a.n.n.e.t",
"dubicanoipcom",
"elko18noipcom",
"exyunoipcom",
"e.x.y.u",
"gojzarnoipinfo",
"gollumhocom",
"gorenjskanoipcom",
"gypsyhubnoipinfo",
"hanibalgalaxynoipinfo",
"hotelbalkannoipcom",
"hubscafews",
"hubsioffnet",
"ircmostarminenu",
"jaraninoipcom",
"konjicenoipinfo",
"krajinanoiporg",
"k.r.a.j.i.n.a.n.o.i.p.o.r.g",
"krajinanoipcom",
"kpajuhanoiporg",
"krajinakickassnet",
"k.r.a.j.i.n.a.n.o.i.p.c.o.m",
"k.p.a.j.u.h.a.n.o.i.p.o.r.g",
"k.r.a.j.i.n.a.k.i.c.k.a.s.s.n.e.t",
"legijanoiporg",
"mangupdynucom",
"mgradistenoipinfo",
"mujonoipinfo",
"nasepodrinjenoipcom",
"nektarnoipcom",
"pimpekhoptoorg",
"planetslovenianoipcom",
"poljubacservebeercom",
"posavinanoipcom",
"slofilesharingcom",
"studiomuzikanoipcom",
"starcevicanoipinfo",
"some1elsenoiporg",
"sloveniahoptoorg",
"sloveniaonlinenoipcom",
"sloveniabosszaptoorg",
"sloskatenet",
"sajkocom",
"s.a.j.k.o.c.o.m",
"srbijanoipinfo",
"srbijanoipcom",
"SLOShareReactornoiporg",
"sarajevo1984minenu",
"studiomuzikanoipcom",
"topmuzikanoipcom",
"topbosna.no-ip.org",
"nektarnoipcom",
"yuwakicksassnet",
"vojskanoipcom",
"v.o.j.s.k.a.n.o.i.p.c.o.m",
"vucjaknoipcom",
"zabavahubnoipcom",
"zabavanoipcom",
"zezanjenoipcom",
"wwwhudinjanet",
"wwwdelijesevercjbnet",
"amirhibeljicninonoipinfo",
"banjaluka23noipinfo",
"balkan87noipinfo",
"balkanacnoipcom",
"zandarmerija.no-ip.com",
"cro.ath.cx:123",
"croathcx123",
"cro.a t h.cx:1 2 3",
"c r o . a t h . c x : 1 2 3",
"c r o.a t h.c x: 1 2 3",
"cro.ath.cx",
"athcx",
"ath.cx",
"croath",
"ath..cx",
"cro..ath..cx:.123",
"croathcx",
"cro.ath.",
"cro4evernoiporg",
"cro4ever.no-ip",
"cro4ever.no-ip.org",
"ramonesnoiporg",
"ramones.no-ip.",
"z a n d a r m e r i j a . n o - i p . c o m",
"z a n d a r m e r i j a n o i p c o m",
"z a n d a r m e r i j a",
"dc.ho.com",
"dc.balkan.net",
"topbosna",
"t o p b o s n a",
"evropahub",
"zajko",
"z a j k o",
"za j ko",
"zaj ko",
"e.v.r.o.p.a.h.u.b",
"dijaspora",
"sajko.com",
"delijesever",
"hudinja.net",
"sloskate.net",
"kicks-ass",
"k.i.c.k.a.s.s",
"gotdns",
"udgnet",
}
-- Extentions belonging to Adver above.
Ext = {
"ilo6",
"",
"",
"",
"",
}
-- Change characters.
CharCh = {
["%(dot%)"]=".",
["dot"]=".",
["%(%-%)"]="-",
["#"]="",
["!"]="",
["+"]="",
["%-"]="",
["*"]="",
["/"]="",
[" '"]="",
}
---------------------------------------------------------------
-- DON'T EDIT BELLOW --
tabAdvert = {}

function Main()
   frmHub:RegBot(BotName)
end

function DataArrival(curUser, data)
   local Msg = ""
   if strsub(data, 1, 1) == "<" and not strfind(data,"> !") and not curUser.bOperator then
      local _, _,line = strfind(data, "^%b<>%s+(.*)")
      Msg = line
      for i,v in CharCh do
             line=gsub(line, i, v)
      end
      if CheckAdver(curUser,line,"in Main-Chat, typing",Msg)==1 then
         return 1
      end
   elseif ( strsub(data, 1, 4) == "$To:" ) and not curUser.bOperator then
      local _,_,to,from,line = strfind(data,    "%$To:%s(%S+)%sFrom:%s(%S+)%s$(.*)$")
      Msg = line
      for i,v in CharCh do
             line=gsub(line, i, v)
      end
      if CheckAdver(curUser,line,"in PM to "..to..", typing",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 strfind(adver,v) then
         return 1
      end
   end
end

function Verify(userdata, msg,table)
   if not msg then return end
   tmp =""
   gsub(strlower(msg), "([a-?0-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.."#"..tabAdvert[userdata].l7.."#"..tabAdvert[userdata].l8.."#"..tabAdvert[userdata].l9
   for key, value in table do
      if (strfind(Lines, strlower(value), 1, 1)) then
         return 1
      end
   end
end


-----------------------------------------------------
tnx for help
Title:
Post by: jiten on 02 May, 2005, 12:36:59
You must use the Search function before requesting for scripts, because most of them are already in Lua 5 format.
Script 1:
--//Converted to Lua5 by Jelf 08/03/05
--//RangeBlaster v2.07 by Phatty
--//IP Keys written by John, and Phatty

Bot = "IPRangeBlock"
path = "RangeBlaster/Ranges.dat"
Ranges = {}
-------------------------
function Main()
frmHub:RegBot(Bot)
LoadIps()
end
-------------------------
function LoadIps()

local tmp = 0
local handle = io.open(path,"r")
line = handle:read()
while line do
tmp = tmp + 1
local s,e,ipr1,ipr2 = string.find(line,"(%S+)|(%S+)")
if ipr2 == nil then
SendToAll(Bot,"Error on line "..line)
end
local s,e,ipa1,ipb1,ipc1,ipd1 = string.find(ipr1, "(%d*).(%d*).(%d*).(%d*)")
local s,e,ipa2,ipb2,ipc2,ipd2 = string.find(ipr2, "(%d*).(%d*).(%d*).(%d*)")
si1 = CheckNumber(ipa1)..CheckNumber(ipb1)..CheckNumber(ipc1)..CheckNumber(ipd1)
si2 = CheckNumber(ipa2)..CheckNumber(ipb2)..CheckNumber(ipc2)..CheckNumber(ipd2)
Ranges[si1] = si2
line = handle:read()
end
SendToAll(Bot,"Successfully loaded "..tmp)
end
--------------------------
function Blocked(userip)
 
local s,e,range1,range2,range3,range4 = string.find(userip,"(%d+).(%d+).(%d+).(%d+)")
checker = CheckNumber(range1)..CheckNumber(range2)..CheckNumber(range3)..CheckNumber(range4)

--SendToAll(Bot,"IP-Test..."..checker)

for i,p in Ranges do
local s,e,xstart = string.find(i, "(%d*)")
local s,e,xend = string.find(p, "(%d*)")

if checker > xstart and checker < xend then
collectgarbage()
io.flush()
return 1
else
end
end
end
-------------------------
function CheckNumber(number)
 
numbera = tonumber(number)
if numbera < 10 then
numbera = "00"..number
elseif numbera < 100 then
numbera = "0"..number
else
numbera = number
end
return numbera
end
------------------------
function ValidateNickArrival(user)

if Blocked(user.sIP) == 1 then
user:SendData(Bot, "This hub is private, leave a message to [EMAIL]ip-tracer@sm3yfx.net[/EMAIL],and explain who you are, you will now be disconnected!")
user:SendData(Bot, "Disconnecting...")
SendPmToOps(Bot, user.sName.." - "..user.sIP.." has been blasted by "..Bot.."!")
SendToAll(Bot, user.sName.." - "..user.sIP.." has been blasted by "..Bot.."!")
user:Disconnect()
end
end
Title:
Post by: jiten on 02 May, 2005, 12:43:49
Script 2:
-- Lua 5 version by jiten
-- NightLitch's AdverShield

-- Set Botname
BotName = "Pandur"
-- Set action for advertising ( 0=Warn / 1=Disconnect / 2=Kick / 3=Ban)
Action = 0
-- Set OK hubs that are allowed to be entered.
OkHubs = {
"veselo-srce.no-ip.org",
"veselo-srce2.no-ip.org",
"myhub",
"myhub",
}
-- Accepted "sites" or triggers infront of the address
Sites = {
"www.",
"http",
"ftp",
"irc.",
"ilo6",
}
-- Denyed/not allowed adver's sent in chat/pm
Adver = {
"noip.com",
"noicom",
"noi.com",
"noip.co",
"noipco",
"nop.com",
"nopcom",
"ipcom",
"no ip com",
"no.ip",
"noip",
"n.o.i.p.c.o.m",
"com",
"c o m",
"noip.info",
"n.o.i.p.i.n.f.o",
"noiinfo",
"noi.info",
"ipinfo",
"nopinfo",
"noipinfo",
"nop.info",
"nopinf",
"noip.inf",
"no-ip.info",
"no-ip",
"info",
"i n f o",
"n.o.i.p.o.r.g",
"noip.org",
"noiporg",
"iporg",
"no-ip.org",
"myftp",
"m.y.f.t.p",
"dyndns",
"d.y.n.d.n.s",
"dns2go",
"d.n.s.2.g.o",
"dynip",
"d.y.n.i.p",
"d2g",
"dynu",
"dynu.com",
"dynucom",
"d.y.n.u.c.o.m",
"bosniahub.com",
"m.i.n.e",
"kick-ass.net",
"k.i.c.k.a.s.s.n.e.t",
"kickassnet",
"sytes.net",
"s.y.t.e.s.n.e.t",
"sytesnet",
"homeip",
"h.o.m.e.i.p",
"homeip",
"mine.nu",
"m.i.n.e.n.u",
"minenu",
"servebeer",
"s.e.r.v.e.b.e.e.r",
"zappto",
"z.a.p.p.t.o",
"serveftp",
"s.e.r.v.e.f.t.p",
"sytes",
"s y t e s",
"abductor",
"amirhibeljicnino",
"banjaluka23",
"balkan87",
"balkanspies",
"BigBen",
"B.i.g.B.e.n",
"bosniahub",
"bosnahub",
"crvenazvezda",
"c.r.v.e.n.a.z.v.e.z.d.a",
"dubica",
"d.u.b.i.c.a",
"elko18",
"gojzar",
"g.o.j.z.a.r",
"gollum",
"g.o.l.l.u.m",
"zabavahub",
"gorenjska",
"g.o.r.e.n.j.s.k.a",
"gypsyhub",
"hotelbalkan",
"scafe",
"s.c.a.f.e",
"s.i.o.f.f",
"ircmostar",
"nasepodrinje",
"studiomuzika",
"starcevica",
"sloveniaonline",
"sloveniaboss",
"sloskate",
"SLOShareReactor",
"sarajevo1984",
"delijesever",
"d.e.l.i.j.e.s.e.v.e.r",
"amirhibeljicnino",
"banjaluka23",
"balkan87",
"srbijanoipcom",
"hopto.org",
"h.o.p.t.o.o.r.g",
"hoptoorg",
"zappto.org",
"z.a.p.t.o.o.r.g",
"hub.sioff.net",
"h.u.b.s.i.o.f.f.n.e.t",
"hub.scafe.ws",
"h.u.b.s.c.a.f.e.w.s",
"gollum.ho.com",
"abductornoipcom",
"asczaptoorg",
"amirhibeljicninonoipinfo",
"banjaluka23noipinfo",
"balkan87noipinfo",
"balkanacnoipcom",
"balkanspiesservebeercom",
"beograddynucom",
"b.e.o.g.r.a.d.d.y.n.u.c.o.m",
"BigBensytesnet",
"bihnoipinfo",
"bosniahubcom",
"bosnahubnoipinfo",
"beograd.no-ip.com",
"b.e.o.g.r.a.d.n.o.i.p.c.o.m",
"bosniahubnet",
"BosniaHubnet",
"bosnianoipinfo",
"bosnianoipcom",
"cmoknoipcom",
"crousanoipcom",
"croatiaserveftpcom1420",
"croatiaserveftpcom",
"croatianoiporg",
"croatiagotdnsorg3285",
"croatiagotdnsorg",
"crvenazvezdanoipinfo",
"damiraganoiporg",
"dijasporanoipcom",
"DCHOCOM",
"dchocom",
"d.c.h.o.c.o.m",
"dcbalcannet",
"d.c.b.a.l.c.a.n.n.e.t",
"dubicanoipcom",
"elko18noipcom",
"exyunoipcom",
"e.x.y.u",
"gojzarnoipinfo",
"gollumhocom",
"gorenjskanoipcom",
"gypsyhubnoipinfo",
"hanibalgalaxynoipinfo",
"hotelbalkannoipcom",
"hubscafews",
"hubsioffnet",
"ircmostarminenu",
"jaraninoipcom",
"konjicenoipinfo",
"krajinanoiporg",
"k.r.a.j.i.n.a.n.o.i.p.o.r.g",
"krajinanoipcom",
"kpajuhanoiporg",
"krajinakickassnet",
"k.r.a.j.i.n.a.n.o.i.p.c.o.m",
"k.p.a.j.u.h.a.n.o.i.p.o.r.g",
"k.r.a.j.i.n.a.k.i.c.k.a.s.s.n.e.t",
"legijanoiporg",
"mangupdynucom",
"mgradistenoipinfo",
"mujonoipinfo",
"nasepodrinjenoipcom",
"nektarnoipcom",
"pimpekhoptoorg",
"planetslovenianoipcom",
"poljubacservebeercom",
"posavinanoipcom",
"slofilesharingcom",
"studiomuzikanoipcom",
"starcevicanoipinfo",
"some1elsenoiporg",
"sloveniahoptoorg",
"sloveniaonlinenoipcom",
"sloveniabosszaptoorg",
"sloskatenet",
"sajkocom",
"s.a.j.k.o.c.o.m",
"srbijanoipinfo",
"srbijanoipcom",
"SLOShareReactornoiporg",
"sarajevo1984minenu",
"studiomuzikanoipcom",
"topmuzikanoipcom",
"topbosna.no-ip.org",
"nektarnoipcom",
"yuwakicksassnet",
"vojskanoipcom",
"v.o.j.s.k.a.n.o.i.p.c.o.m",
"vucjaknoipcom",
"zabavahubnoipcom",
"zabavanoipcom",
"zezanjenoipcom",
"wwwhudinjanet",
"wwwdelijesevercjbnet",
"amirhibeljicninonoipinfo",
"banjaluka23noipinfo",
"balkan87noipinfo",
"balkanacnoipcom",
"zandarmerija.no-ip.com",
"cro.ath.cx:123",
"croathcx123",
"cro.a t h.cx:1 2 3",
"c r o . a t h . c x : 1 2 3",
"c r o.a t h.c x: 1 2 3",
"cro.ath.cx",
"athcx",
"ath.cx",
"croath",
"ath..cx",
"cro..ath..cx:.123",
"croathcx",
"cro.ath.",
"cro4evernoiporg",
"cro4ever.no-ip",
"cro4ever.no-ip.org",
"ramonesnoiporg",
"ramones.no-ip.",
"z a n d a r m e r i j a . n o - i p . c o m",
"z a n d a r m e r i j a n o i p c o m",
"z a n d a r m e r i j a",
"dc.ho.com",
"dc.balkan.net",
"topbosna",
"t o p b o s n a",
"evropahub",
"zajko",
"z a j k o",
"za j ko",
"zaj ko",
"e.v.r.o.p.a.h.u.b",
"dijaspora",
"sajko.com",
"delijesever",
"hudinja.net",
"sloskate.net",
"kicks-ass",
"k.i.c.k.a.s.s",
"gotdns",
"udgnet",
}
-- Extentions belonging to Adver above.
Ext = {
"ilo6",
"",
"",
"",
"",
}
-- Change characters.
CharCh = {
["%(dot%)"]=".",
["dot"]=".",
["%(%-%)"]="-",
["#"]="",
["!"]="",
["+"]="",
["%-"]="",
["*"]="",
["/"]="",
[" '"]="",
}
---------------------------------------------------------------
-- DON'T EDIT BELLOW --
tabAdvert = {}

function Main()
frmHub:RegBot(BotName)
end

function ChatArrival(curUser, data)
local Msg = ""
if 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
end
end

function ToArrival(curUser,data)
if not curUser.bOperator 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
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
Cheers