PtokaX forum

Archive => Archived 5.0 boards => Finished Scripts => Topic started by: GeceBekcisi on 10 October, 2005, 15:46:08

Title: REGorREDIR
Post by: GeceBekcisi on 10 October, 2005, 15:46:08
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
-- ==================================================