Request to register - Page 2
 

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

Request to register

Started by Dj_OcTaGoN, 02 December, 2004, 10:08:05

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

NeoUltimicia

well, I changed this thing -- hope it fixed it..
This will write the data correctly after a NEW user get in:

I added the ["OP"] in:
         arrRR[user.sName]["ACCEPT"] = arrRR[user.sName]["ACCEPT"]["OP"]
to look like:
         arrRR[user.sName]["ACCEPT"]["OP"]= arrRR[user.sName]["ACCEPT"]["OP"]

I hope this was the problem. (I don't wanna see more errors out of this...)
in anycase, here is the full script (hopefully working)
I hope "nErBoS" & "Mator" won't mind with the "configrations" that I used from Mutor's script (Message Board 1.01)
--## REQUESTED REGISTER BOT 1.0
--## Requested by Dj_OcTaGoN
--## Made by nErBoS		[bugfix by NeoUltimicia (NewUserConnected)]
--## 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:
--##	+seereqreg		-- Show all the requests to register
--##	+accreqreg 	-- Accepts the request of regiter to an user
--##	+denreqreg 	-- Denies the request of register to an user
--##
--##	ONLY FOR MASTERS
--##	+delreqreg 	-- Deletes the entry of a request

sBot = frmHub:GetHubBotName()

arrRR = {}
fRR = "dats/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

Prefix = "+"				-- Command Prefix
Comm1 = strlower("reqreg")		-- Request Registration
Comm2 = strlower("seereqreg")		-- See Request Registration
Comm3 = strlower("accreqreg")		-- Accept Request Registration
Comm4 = strlower("denreqreg")		-- Denied Request Registration
Comm5 = strlower("delreqreg")		-- Delete Request Registration entry

reqprofiles = {[0]=0, [1]=0, [2]=0, [3]=0 , [4]=0 , [5]=0 , [-1]=1 }
seeprofiles = {[0]=1, [1]=1, [2]=1, [3]=0 , [4]=1 , [5]=0 , [-1]=0 }
accprofiles = {[0]=1, [1]=1, [2]=0, [3]=0 , [4]=1 , [5]=0 , [-1]=0 }
denprofiles = {[0]=1, [1]=1, [2]=0, [3]=0 , [4]=1 , [5]=0 , [-1]=0 }
delprofiles = {[0]=1, [1]=1, [2]=0, [3]=0 , [4]=1 , [5]=0 , [-1]=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"]["OP"]= 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"]["OP"]= 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==Prefix..Comm1) and reqprofiles[user.iProfile]==1 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 (cmd==Prefix..Comm2) and seeprofiles[user.iProfile]==1 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 (cmd==Prefix..Comm3) and accprofiles[user.iProfile]==1 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.." has 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.." has been registered.")
				sNick:SendPM(sBot, "Your request for register has been accept. Please reconnect with your password.")
				if (uLaterPtokax == 1) then
					OnExit()
				end
			end
			return 1
		elseif (cmd==Prefix..Comm4) and denprofiles[user.iProfile]==1 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.." has 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.." has been denied the register.")
				sNick:SendPM(sBot, "Your request for register has been denied.")
				if (uLaterPtokax == 1) then
					OnExit()
				end
			end
			return 1
		elseif (cmd==Prefix..Comm5) and delprofiles[user.iProfile]==1 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

Jerry

Hello,
does somebody convert this script to Lua5?

This is very useful script!  :]  ;)
PLEASE!  :D

nErBoS

Hi,

New script in LUA 5, you can find it HERE .

Best regards, nErBoS
--## nErBoS Spot ##--

NeoUltimicia

thanks for releasing the LA in 5, I thought it won't be made... :) - but am glad I thought wrong...
I'll get it now.. and test it...

SMF spam blocked by CleanTalk