RegRequest LUA4->LUA5
 

News:

29 December 2022 - PtokaX 0.5.3.0 (20th anniversary edition) released...
11 April 2017 - PtokaX 0.5.2.2 released...
8 April 2015 Anti child and anti pedo pr0n scripts are not allowed anymore on this board!
28 September 2015 - PtokaX 0.5.2.1 for Windows 10 IoT released...
3 September 2015 - PtokaX 0.5.2.1 released...
16 August 2015 - PtokaX 0.5.2.0 released...
1 August 2015 - Crowdfunding for ADC protocol support in PtokaX ended. Clearly nobody want ADC support...
30 June 2015 - PtokaX 0.5.1.0 released...
30 April 2015 Crowdfunding for ADC protocol support in PtokaX
26 April 2015 New support hub!
20 February 2015 - PtokaX 0.5.0.3 released...
13 April 2014 - PtokaX 0.5.0.2 released...
23 March 2014 - PtokaX testing version 0.5.0.1 build 454 is available.
04 March 2014 - PtokaX.org sites were temporary down because of DDOS attacks and issues with hosting service provider.

Main Menu

RegRequest LUA4->LUA5

Started by Dj_OcTaGoN, 27 May, 2005, 09:48:25

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Dj_OcTaGoN

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


Dessamator

use NL's gui converter,
and post script editor's errors here!
GOOD luck!
Ignorance is Bliss.

SMF spam blocked by CleanTalk