PtokaX forum

Archive => Archived 5.0 boards => Help with scripts => Topic started by: Dj_OcTaGoN on 27 May, 2005, 09:48:25

Title: RegRequest LUA4->LUA5
Post by: Dj_OcTaGoN on 27 May, 2005, 09:48:25
Howdy! Wonder if someone  would be able to translate this script into LUA 5 :)

cheers//Dj_OcTaGoN

--## REQUESTED REGISTER BOT 1.0

--## Requested by Dj_OcTaGoN

--## Made by nErBoS

--## Some BUGs corrected

--## Added a [REG] nick checker

--## OPs warning of new request

--## Save the denieds and accpets

--## Added the command +delete

--## Commands:

--## +reqreg -- Makes a request to register your nick

--##

--## ONLY FOR OPs:

--## +seereq -- Show all the requests to register

--## +accept -- Accepts the request of regiter to an user

--## +denied -- Denies the request of register to an user

--##

--## ONLY FOR MASTERS

--## +delete -- Deletes the entry of a request



sBot = "RR-Bot"



arrRR = {}

fRR = "reqreg.dat"



--## Configuration ##--



uLaterPtokax = 0 -- Choose 0 if you are using a Ptokax Version 0.3.3.0 or higher

-- Choose 1 if you are using a Ptokax Version lower then 0.3.3.0



--## END ##--



function Main()

frmHub:RegBot(sBot)

LoadFromFile(fRR)

end



function OnExit()

SaveToFile(fRR,arrRR,"arrRR")

end



function NewUserConnected(user)

if (arrRR[user.sName] ~= nil) then

if (type(arrRR[user.sName]["DENIED"]) == "table") then

user:SendData(sBot, "Your request for register has been denied.")

arrRR[user.sName]["DENIED"]["WARN"] = nil

arrRR[user.sName]["DENIED"] = arrRR[user.sName]["DENIED"]["OP"]

if (uLaterPtokax == 1) then

OnExit()

end

elseif (type(arrRR[user.sName]["ACCEPT"]) == "table") then

user:SendData(sBot, "Your request for register has been accepted.")

arrRR[user.sName]["ACCEPT"]["WARN"] = nil

arrRR[user.sName]["ACCEPT"] = arrRR[user.sName]["ACCEPT"]["OP"]

if (uLaterPtokax == 1) then

OnExit()

end

end

end

end



function DataArrival(user, data)

if (strsub(data,1,1) == "<" or strsub(data,1,5+strlen(sBot)) == "$To: "..sBot) then

data = strsub(data,1,strlen(data)-1)

local s,e,cmd = strfind(data, "%b<>%s+(%S+)")

if (cmd == "+reqreg") then

local s,e,sPass = strfind(data, "%b<>%s+%S+%s+(%S+)")

if (sPass == nil) then

user:SendPM(sBot, "Syntax Error, +reqreg , you must write a pass.")

elseif (strfind(sPass, "[%c|\n\r]")) then

user:SendPM(sBot, "Invalid Password. Try Again.")

elseif (strfind(user.sName, "[%c|\n\r]")) then

user:SendPM(sBot, "Your nick is invalid. Please choose a new one.")

elseif (user.iProfile ~= -1) then

user:SendPM(sBot, "You are already register in our HUB.")

elseif (strsub(user.sName,1,5) ~= "[REG]") then

user:SendPM(sBot, "To make the request you need to have the prefix [REG] on your nick.")

elseif (arrRR[user.sName] ~= nil) then

user:SendPM(sBot, "You have already made a request.")

else

arrRR[user.sName] = {["PASS"] = sPass, ["TIME"] = GetTime()}

user:SendPM(sBot, "Your request for register has been saved. Don't forget your password: "..sPass)

SendPmToOps(sBot, "The user "..user.sName.." has requested to be register.")

if (uLaterPtokax == 1) then

OnExit()

end

end

return 1

elseif (user.bOperator and cmd == "+seereq") then

local sTmp,sTmp2,sTmp3,sNick,arrTable = "Request of register in the HUB:\r\n\r\n","Users accepted:\r\n\r\n","Users denied:\r\n\r\n"

for sNick, arrTable in arrRR do

if (arrTable["DENIED"] ~= nil) then

if (arrTable["DENIED"]["OP"] == nil) then

sTmp3 = sTmp3.."USER: "..sNick.." DENIED BY: "..arrTable["DENIED"].."\r\n"

else

sTmp3 = sTmp3.."USER: "..sNick.." DENIED BY: "..arrTable["DENIED"]["OP"].."\r\n"

end

elseif (arrTable["ACCEPT"] ~= nil) then

if (arrTable["ACCEPT"]["OP"] == nil) then

sTmp2 = sTmp2.."USER: "..sNick.." ACCEPTED BY: "..arrTable["ACCEPT"].."\r\n"

else

sTmp2 = sTmp2.."USER: "..sNick.." ACCEPTED BY: "..arrTable["ACCEPT"]["OP"].."\r\n"

end

else

sTmp = sTmp.."USER: "..sNick.." TIME OF REQUEST: "..arrTable["TIME"].."\r\n"

end

end

user:SendPM(sBot, sTmp.."\r\n"..sTmp2.."\r\n"..sTmp3)

return 1

elseif (user.bOperator and cmd == "+accept") then

local s,e,sNick = strfind(data, "%b<>%s+%S+%s+(%S+)")

if (sNick == nil) then

user:SendPM(sBot, "Syntax Error, +accept , you must write a nick.")

elseif (arrRR[sNick] == nil) then

user:SendPM(sBot, "The nick "..sNick.." isn't in our table of request (WARNING: the nick is case sensative).")

elseif (GetItemByName(sNick) == nil) then

AddRegUser(sNick,arrRR[sNick]["PASS"],3)

arrRR[sNick] = {["ACCEPT"] = {["WARN"] = 1, ["OP"] = user.sName}}

user:SendPM(sBot, "The user "..sNick.." was been registered.")

if (uLaterPtokax == 1) then

OnExit()

end

else

sNick = GetItemByName(sNick)

AddRegUser(sNick.sName,arrRR[sNick.sName]["PASS"],3)

arrRR[sNick.sName] = {["ACCEPT"] = {["WARN"] = 1, ["OP"] = user.sName}}

user:SendPM(sBot, "The user "..sNick.sName.." was been registered.")

sNick:SendPM(sBot, "Your request for register was been accept. Please reconnect with your password.")

if (uLaterPtokax == 1) then

OnExit()

end

end

return 1

elseif (user.bOperator and cmd == "+denied") then

local s,e,sNick = strfind(data, "%b<>%s+%S+%s+(%S+)")

if (sNick == nil) then

user:SendPM(sBot, "Syntax Error, +denied , you must write a nick.")

elseif (arrRR[sNick] == nil) then

user:SendPM(sBot, "The nick "..sNick.." isn't in our table of request (WARNING: the nick is case sensative).")

elseif (GetItemByName(sNick) == nil) then

arrRR[sNick] = {["DENIED"] = {["WARN"] = 1, ["OP"] = user.sName}}

user:SendPM(sBot, "The user "..sNick.." was been denied the register.")

if (uLaterPtokax == 1) then

OnExit()

end

else

sNick = GetItemByName(sNick)

arrRR[sNick.sName] = {["DENIED"] = {["WARN"] = 1, ["OP"] = user.sName}}

user:SendPM(sBot, "The user "..sNick.sName.." was been denied the register.")

sNick:SendPM(sBot, "Your request for register was been denied.")

if (uLaterPtokax == 1) then

OnExit()

end

end

return 1

elseif (user.iProfile == 0 and cmd == "+delete") then

local s,e,sNick = strfind(data, "%b<>%s+%S+%s+(%S+)")

if (sNick == nil) then

user:SendPM(sBot, "Syntax Error, +delete , you must write a nick.")

elseif (arrRR[sNick] == nil) then

user:SendPM(sBot, "The nick "..sNick.." isn't in our table of request (WARNING: the nick is case sensative).")

else

arrRR[sNick] = nil

user:SendPM(sBot, "The entry of the request of the nick "..sNick.." has been deleted.")

end

return 1

end

end

end



function GetTime()

return date("%d").."/"..date("%m").."/20"..date("%y").." "..date("%H")..":"..date("%M")..":"..date("%S")

end



function Serialize(tTable, sTableName, sTab)

assert(tTable, "tTable equals nil");

assert(sTableName, "sTableName equals nil");



assert(type(tTable) == "table", "tTable must be a table!");

assert(type(sTableName) == "string", "sTableName must be a string!");



sTab = sTab or "";

sTmp = ""



sTmp = sTmp..sTab..sTableName.." = {\n"



for key, value in tTable do

local sKey = (type(key) == "string") and format("[%q]",key) or format("[%d]",key);



if(type(value) == "table") then

sTmp = sTmp..Serialize(value, sKey, sTab.."\t");

else

local sValue = (type(value) == "string") and format("%q",value) or tostring(value);

sTmp = sTmp..sTab.."\t"..sKey.." = "..sValue

end



sTmp = sTmp..",\n"

end



sTmp = sTmp..sTab.."}"

return sTmp

end



function SaveToFile(file , table , tablename)

writeto(file)

write(Serialize(table, tablename))

writeto()

end



function LoadFromFile(file)

if (readfrom(file) ~= nil) then

readfrom(file)

dostring(read("*all"))

readfrom()

end

end
Title:
Post by: Dessamator on 27 May, 2005, 13:17:19
use NL's gui converter,
and post script editor's errors here!
GOOD luck!