REGorREDIR
 

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

REGorREDIR

Started by GeceBekcisi, 10 October, 2005, 15:46:08

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

GeceBekcisi

Please report any bugs & errors
-- ==================================================
--// REGorREDIR 1.00 by GeceBekcisi
--// Redirects users after an interval if they dont reg
-- ==================================================
--// Settings
-- ==================================================
tSettings = {
	-- Your Bot name (default is your hub default bot name)
	["sBot"] = frmHub:GetHubBotName(),
	-- Redirect address (default is your hub default redirect address)
	["sRedirectAddy"] = frmHub:GetRedirectAddress(),
	-- Sets the time interval in minutes before unregged user is redirected
	["iRedirectInterval"] = 1,
	-- Command name for showing users waiting redirect
	["sUsersShowCMD"] = "showusers",
	-- Sets who can use script
	["iMinLevel"] = 3,
	-- Sets profile access levels ( DO NOT TOUCH UNLESS YOU ARE SURE OF WHAT YOU ARE DOING!!! )
	["tProfileLevels"] = {	
		[-1] = 0,	-- Unreg Users
		[0] = 5,	-- Masters
		[1] = 3,	-- Operators
		[2] = 2,	-- VIPs
		[3] = 1,	-- Regs
		[4] = 4,	-- Moderators
		[5] = 6,	-- NetFounders
	},
}
-- ==================================================
--// Hub Functions
-- ==================================================
tUsers = {}
function Main()
	frmHub:RegBot(tSettings.sBot)
	SetTimer(30000)
	StartTimer()
end

function NewUserConnected(curUser)
	local EnterDate = os.time()
	if not curUser.bRegistered then
		tUsers[curUser.sName] = {}
		tUsers[curUser.sName] = EnterDate
		curUser:SendMessage(tSettings.sBot, "WARNING! Please register yourself to our hub or you'll be redirected in "..tSettings.iRedirectInterval.." minutes.")
	end
end

function UserDisconnected(curUser)
	if tUsers[curUser.sName] then
		tUsers[curUser.sName] = nil
	end
end

function OnTimer()
	local Now = os.time()
	for i,v in pairs(tUsers) do
		if ((Now-v)>= tSettings.iRedirectInterval*60) then
			local curUser = GetItemByName(i)
			if not curUser.bRegistered then
				SendToNick(i, "<"..tSettings.sBot.."> You didn't register in "..tSettings.iRedirectInterval.." minutes after you logged in, so are now being redirected!")
				SendToNick(i, "$ForceMove "..tSettings.sRedirectAddy)
				if tUsers[curUser.sName] then
					tUsers[curUser.sName] = nil
				end
			end
		end
	end
end

function ChatArrival(curUser, data)
	curUser.SendMessage = curUser.SendData
	return tFunctions.GetCommands(curUser, data)
end

function ToArrival(curUser, data)
	local s,e,to = string.find(data, "$To: (%S+%s?%S*)%sFrom:")
	if to == tSettings.sBot then
		curUser.SendMessage = curUser.SendPM
		return tFunctions.GetCommands(curUser, data)
	end
end
-- ==================================================
--// Commands
-- ==================================================
tCommands = {}
tCommands[tSettings.sUsersShowCMD] = function(curUser, data)
	local sMessage = "\r\n\r\n\tUnregged users waiting redirection:\r\n\r\n\t"..string.rep("?",50).."\r\n"
	for i,v in pairs(tUsers) do
		local Now = os.time()
		local Left = string.format("%03d", ((tSettings.iRedirectInterval*60)-(Now-v)))
		sMessage = sMessage.."\tSeconds Left: "..Left.." \tNick: "..i.."\r\n"
	end
	curUser:SendMessage(tSettings.sBot, sMessage.."\t"..string.rep("_",50).."\r\n\r\n")
	return 1
end
-- ==================================================
--// Script Functions
-- ==================================================
tFunctions = {}
tFunctions.GetCommands = function(curUser, data)
	local data = string.sub(data, 1, (string.len(data)-1))
	local s,e,Command = string.find(data, "%b<>%s+%p(%S+)")
	if Command and tCommands[Command] then
		if tSettings.tProfileLevels[curUser.iProfile] >= tSettings.iMinLevel then
			return tCommands[Command](curUser, data)
		else
			curUser:SendMessage(tSettings.sBot, "You are not allowed to use this command!")
		end
		return 1
	end
end
-- ==================================================
--// End of Script
-- ==================================================
Do you need an advanced user handling script? Download UserBekcisi today (Latest Edit)
Features: User + ISP + GeoIP database, user info + share checking and many more...

SMF spam blocked by CleanTalk