Registered only
 

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

Registered only

Started by swee, 10 August, 2007, 21:16:06

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

swee

I would like an script which made it possible for ppl who are on reg hubbs only.
So if I am on a public hub I would get an warning or be kicked.
I dont mind if there are ppl who are on several Reg hubs but if  they  are on one Public.
Would be nice if the script could kick after some seconds.
Iknow it is in the tag but if ops isnt around.
Is it possible ?
Thanx in advance

Thought i seen it around here but couldnt find any.
Regards swee

swee

#1
thank u very much Mutor for your fast reply.
got it running what does this mean ?
188: attempt to perform arithmetic on a nil value


regards swee

swee

Oki will give it a go  ::)
And thanx for the script.
reagards swee

ExtreeM

#3
hmmm i get this error

[19:44] Syntax no p hub.lua:35: attempt to index global 'frmHub' (a nil value)

???

hmmm i use the new Ptokax, maybe this is not made for the new Ptokax yet???

speedX

Quote from: ExtreeM on 10 December, 2007, 19:45:09
hmmm i get this error

[19:44] Syntax no p hub.lua:35: attempt to index global 'frmHub' (a nil value)

???

hmmm i use the new Ptokax, maybe this is not made for the new Ptokax yet???

This script is Lua 5.x, so if u r using the new PtokaX API thn it wont work.
Thanking You,

speedX

ExtreeM


QuoteSo this version is for the old API and won't work for the new API.
I will however, provide one for the new API soon.

Nice m8 i?ll be looking forward to that :D

ExtreeM

--[[
	NoPubHub 1.0d LUA 5.0/5.1

	By Mutor        07/18/06

	Requested by WingZero

	Block connections from users in public hubs

	- Messages user before disconnect. [set pubmsg ~line 27]
	- Block / Exclude by profile [set Exclude table ~line 18]
	- Checks in MyINFOArrival to detect public connections made after login

	Changes from 1.0	10/29/06	Request by hund
		-Removed disconnect public hub user
		+Added check for Cfg.OpChat, enable if disabled
		+Added report public hub user login to OpChat

	Changes from 1.0b	11/23/06
		+Added excluded by nick
		+Added option to disconnect/timeban public user(s),  request by Blixten?
		+Added context menus [right click]
		+Added save excluded nicks table to file for script/hub restarts

	Changes from 1.0c	11/24/06	Request by Blixten?
		+Added perm ban option for single public hub attempt [not reccommended]
		+Added perm ban option for 'x' public hub attempts
		+Added save banned table to file for script/hub restarts
]]

Cfg = {
-- Admins nick for status / error messages
OpNick = "Mutor",
-- Botname pulled from the hub or use "#.XXXXXX"
PubBot = frmHub:GetHubBotName(),
-- Should bot have a key?
BotIsOp = 1,
--Bot description
BotDesc = "I check user public hub status",
--Bot Email address
BotMail = "user@domain.com",
--Context Menu Title
Menu = frmHub:GetHubName(),
--Context Submenu Title
SubMenu = "NoPubHub 1.0d",
-- File to save exlusion table
File = "PubExclude.dat",
-- File to save ban table
BanFile = "PubBans.dat",
--User Penalty:
-- 0=None, Inform Ops Only,
-- 1=Disconnect Users, Inform Ops,
-- 2 = TimeBan Users, Inform Ops,
-- 3 = IP ban, inform Ops
Penalty = 3,
--TempBan time in minutes, 0 = default tempban time from GUI
BanTime = 30,
--Permanently ban users after this amount of tempbans [0 = disable permanent ban]
BanCount = 3,
--Allow Commands
-- [#] = 0/1, (0 = Commands Disabled, 1 = Commands Enabled)
Profiles  = {
	[-1] = {0,"Unregistered User"},
	[0] = {1,"Master"},
	[1] = {0,"Operator"},
	[2] = {0,"Vip"},
	[3] = {0,"Registered User"},
	[4] = {0,"Moderator"},
	[5] = {0,"NetFounder"},
	[6] = {0,"Lord&Maker"},
	},
--Exclude Profiles
--[#] = {0=check/1=Cfg.ExcludeProfiles, "Profile Name"},
ExcludeProfiles = {
	[-1] = {0,"Unregistered User"},
	[0] = {1,"Master"},
	[1] = {1,"Operator"},
	[2] = {0,"Vip"},
	[3] = {0,"Registered User"},
	[4] = {0,"Moderator"},
	[5] = {0,"NetFounder"},
	[6] = {0,"Owner"},
	},
--Exclude By NickName
ExcludeNicks = {
	["Mutor"] = 0,
	["OtherNick"] = 0,
	},
}

Main  = function()
	Cfg.OpChat = "Cfg.OpChat"
	if frmHub:GetOpChat() == 1 then
		Cfg.OpChat = frmHub:GetOpChatName()
	else
		frmHub:SetOpChatData(Cfg.OpChat,"Operators Chat Room",Cfg.BotMail)
		frmHub:SetOpChat(1)
		RegBot(Cfg.OpChat)
	end
	if Cfg.PubBot ~= frmHub:GetHubBotName() or frmHub:GetHubBot()== 0 then
		frmHub:RegBot(Cfg.PubBot, 1, Cfg.Desc.." PtokaX ".._VERSION, Cfg.Mail)
	end
	local LuaVer = string.sub(_VERSION,1,7)
	if LuaVer == "Lua 5.1" then
		gc,no,pat,mem = "collect",table.maxn,string.gmatch,collectgarbage("count")
	elseif LuaVer == "Lua 5.0" then
		gc,no,pat,mem = nil,table.getn,string.gfind,gcinfo()
	else
		OnError("This script is incompatible with ".._VERSION)
	end
	mem = string.format("%-.2f Kb.",mem)
	if loadfile(Cfg.File) then
		dofile(Cfg.File)
	else
		Save_File(Cfg.File,Cfg.ExcludeNicks,"Cfg.ExcludeNicks")
	end
	if loadfile(Cfg.BanFile) then
		dofile(Cfg.BanFile)
	else
		Cfg.Banned = {}
		Save_File(Cfg.BanFile,Cfg.Banned,"Cfg.Banned")
	end
	collectgarbage(gc)
	OnError("NoPubHub 1.0d ".._VERSION.." by Mutor has been started, using "..mem.." of memory.")
end

OnExit = function()
	OnError("NoPubHub 1.0d for ".._VERSION.." by Mutor has been stopped.")
end

OnError = function(msg)
	SendToNick(Cfg.OpNick,"<"..Cfg.PubBot.."> "..msg)
end

function NewUserConnected(user, data)
	if Cfg.Profiles[user.iProfile] and Cfg.Profiles[user.iProfile][1] == 1 then
		SendPubCmds(user)
		local prof = GetProfileName(user.iProfile) or "Unregistered User"
		local msg = "Welcome "..user.sName..", "..prof.."'s NoPubHub 1.0d commands "..
		"enabled. Right click hub tab or user list for menu."
		user:SendData(Cfg.PubBot,msg)
	end
end
OpConnected = NewUserConnected

ChatArrival = function(user, data)
	if Cfg.Profiles[user.iProfile] and Cfg.Profiles[user.iProfile][1] == 1 then
		local s,e,to = string.find(data,"^$To:%s(%S+)%sFrom:")
		local s,e,cmd = string.find( data, "%b<>%s%p(%w+)")
		if cmd and PubCmds[cmd] then
			if to and to == Cfg.PubBot then
				user:SendPM(Cfg.PubBot,PubCmds[cmd](user,data,cmd))
			else
				user:SendData(Cfg.PubBot,PubCmds[cmd](user,data,cmd))
			end
			return 1
		end
	end
end
ToArrival = ChatArrival

MyINFOArrival = function(user,data)
	local Prof = GetProfileName(user.iProfile) or "Unregistered User"
	local PubMsg = frmHub:GetHubName().." asks that you not be connected to public hubs.\r\n\r\n"
	local OpMsg = "The "..Prof.." "..user.sName..", is connected to "..user.iNormalHubs.." public hub(s)."
	if not Cfg.ExcludeProfiles[user.iprofile] or Cfg.ExcludeProfiles[user.iprofile][1] ~= 1 then
		if not Cfg.ExcludeNicks[user.sName] or Cfg.ExcludeNicks[user.sName] ~= 1 then
			if user.iNormalHubs ~= 0 then
				if Cfg.Penalty == 0 then
					PubMsg = PubMsg.."\t***Online operators have been informed of your "..
					"public hub connection status.***\r\n\r\n"
					return user:SendData(frmHub:GetHubName(),PubMsg),
					SendPmToOps(Cfg.OpChat,OpMsg)
				elseif Cfg.Penalty == 1 then
					PubMsg = PubMsg.."\tYou will now be disconnected. "..
					"Please logout of any public hubs before you return.\r\n\r\n"
					OpMsg = OpMsg.." "..user.sName.." has been disconnected from the hub."
				elseif Cfg.Penalty == 2 then
					local Period = Cfg.BanTime
					if Period == 0 then
						Period = frmHub:GetDefaultTempBanTime()
					end
					if Cfg.BanCount > 0 then
						if not Cfg.Banned[user.sName] then
							Cfg.Banned[user.sName] = 1
							local limit = Cfg.BanCount - Cfg.Banned[user.sName]
							PubMsg = PubMsg.."\tYou will now be disconnected.and temporarily "..
							"banned for "..Period.." minutes.\r\n"..
							"\tYou have been warned "..Cfg.Banned[user.sName].." times. "..limit..
							" more attempts, and you will be perm banned.\r\n\r\n"
							OpMsg = OpMsg.." "..user.sName.." has been time banned "..
							Cfg.Banned[user.sName].." times. "..limit.." more attempts, and "..
							user.sName.." will be perm banned."
							TempBan(user.sIP,Period,"Connection To Public Hubs",Cfg.PubBot,0)
						else
							Cfg.Banned[user.sName] = Cfg.Banned[user.sName] + 1
							if Cfg.Banned[user.sName] >= Cfg.BanCount then
								Ban(user.sIP,"Attempted Connection To Public Hubs > "..
								Cfg.BanCount.." times.",Cfg.PubBot,0)
								Cfg.Banned[user.sName] = nil
								PubMsg = PubMsg.."\tYou have been warned "..Cfg.BanCount.." times "..
								"about connection to public hubs.\r\n"..
								"\tYou will now be permanently IP banned.\n\r\n"
								OpMsg = OpMsg.." "..user.sName.." has been permanently "..
								"IP banned. for connection to public hubs "..
								Cfg.BanCount.." times."
							else
								local limit = Cfg.BanCount - Cfg.Banned[user.sName]
								PubMsg = PubMsg.."\tYou will now be disconnected.and temporarily "..
								"banned for "..(GetTempBannedItemTime(user.sIP)/60).." minutes.\r\n"..
								"\tYou have been warned "..Cfg.Banned[user.sName].." times. "..limit..
								" more attempts, and you will be perm banned.\r\n\r\n"
								OpMsg = OpMsg.." "..user.sName.." has been time banned "..
								Cfg.Banned[user.sName].." times. "..limit.." more attempts, and "..
								user.sName.." will be perm banned."
								TempBan(user.sIP,Period,"Connection To Public Hubs",Cfg.PubBot,0)
							end
						end
						Save_File(Cfg.BanFile,Cfg.Banned,"Cfg.Banned")
					else
						OpMsg = OpMsg.." "..user.sName.." has been timebanned for "..Period.." minutes."
					end
				elseif Cfg.Penalty == 3 then
					Ban(user.sIP,"Connection To Public Hubs",Cfg.PubBot,0)
					PubMsg = PubMsg.."\tYou will now be permanently IP banned.\n\r\n"
					OpMsg = OpMsg.." "..user.sName.." has been permanently "..
					"IP banned. for connection to public hubs."
				end
				return user:SendData(frmHub:GetHubName(),PubMsg),
				user:Disconnect(),
				SendPmToOps(Cfg.OpChat,OpMsg),1
			end
		end
	end
end

SendPubCmds = function(user)
	for i,v in pairs(PubCmds) do
		local desc,arg1,arg2 = PubCmds[i]()
		user:SendData("$UserCommand 1 1 "..Cfg.Menu.."\\"..Cfg.SubMenu.."\\"..
		desc.."$<%[mynick]> +"..i..arg1.."&#124;")
		user:SendData("$UserCommand 1 2 "..Cfg.Menu.."\\"..Cfg.SubMenu.."\\"..
		desc.."$$To: %[nick] From: %[mynick] $<%[mynick]> +"..i..arg2.."&#124;")
		collectgarbage(gc)
	end
end

PubCmds = {
	pubadd = function(user,data,cmd)
		if user then
			local s,e,nick = string.find( data, "%b<>%s%p%w+%s(%S+)|")
			if not nick then
				return "Error!, Usage: "..frmHub:GetPrefixes()[1]..cmd.." <nick>"
			else
				if not Cfg.ExcludeNicks[nick] then
					Cfg.ExcludeNicks[nick] = 1
					Save_File(Cfg.File,Cfg.ExcludeNicks,"Cfg.ExcludeNicks")
					return user.sName..", "..nick.." has been added "..
					"to the exlusion table, "..Cfg.File.." has been updated."
				else
					return "Sorry "..user.sName..", "..nick.." is already excluded."
				end
			end
		else
			return "Add Excluded User", " %[line:NickName]"," %[nick]"
		end
	end,
	pubdel = function(user,data,cmd)
		if user then
			local s,e,nick = string.find( data, "%b<>%s%p%w+%s(%S+)|")
			if not nick then
				return "Error!, Usage: "..frmHub:GetPrefixes()[1]..cmd.." <nick>"
			else
				if Cfg.ExcludeNicks[nick] then
					Cfg.ExcludeNicks[nick] = nil
					Save_File(Cfg.File,Cfg.ExcludeNicks,"Cfg.ExcludeNicks")
					return user.sName..", "..nick.." has been removed "..
					"from the exclusion table, "..Cfg.File.." has been updated."
				else
					return "Sorry "..user.sName..", "..nick.." does not exist in "..
					"the exclusion table."
				end
			end
		else
			return "Remove Excluded User", " %[line:NickName]"," %[nick]"
		end
	end,
	publist = function(user,data,cmd)
		if user then
			local reply = "Auto Block User Exlusions\r\n\t\r\n\t"..string.rep("?",30).."\r\n"
			for i,v in pairs(Cfg.ExcludeNicks) do
				reply = reply.."\t+"..string.format("%-15s",i).."\r\n"
			end
			return reply.."\n\t"..string.rep("?",30).."\r\n\r\n"
		else
			return "List Excluded Users","",""
		end
	end,
	pubhelp = function(user,data,cmd)
		if user then
			local reply = "NoPubHub Help\n\n\tCommand\t\tDescription\r\n"..
			"\t"..string.rep("?",40).."\r\n"
			for i,v in pairs(PubCmds) do
				local desc,args = PubCmds[i]()
				reply = reply.."\t+"..string.format("%-15s",i).."\t"..desc.."\r\n"
			end
			return reply.."\n\t"..string.rep("?",40).."\r\n\r\n"
		else
			return "NoPubHub Help [*This Info]","",""
		end
	end,
}

Save_Serialize = function(tTable, sTableName, hFile, sTab)
	sTab = sTab or "";
	hFile:write(sTab..sTableName.." = {\n" )
	for key, value in pairs(tTable) do
		local sKey = (type(key) == "string") and string.format("[%q]",key) or string.format("[%d]",key)
		if(type(value) == "table") then
			Save_Serialize(value, sKey, hFile, sTab.."\t")
		else
			local sValue = (type(value) == "string") and string.format("%q",value) or tostring(value)
			hFile:write( sTab.."\t"..sKey.." = "..sValue)
		end
		hFile:write( ",\n")
	end
	hFile:write( sTab.."}")
end

Save_File = function(file,table, tablename )
	local hFile = io.open (file , "wb")
	Save_Serialize(table, tablename, hFile)
	hFile:close()
	collectgarbage(gc)
end


there is no delete command, the script makes a double when reconnecting or is it just me??

ExtreeM

#7
QuoteWhat do you mean double? Double what?

well when you reconnect the right click menu appears twice, sry for the code, thougt it was me

http://imageshack.dk//viewimage.php?file=/imagesfree/KrV06935.jpg

there is a screenshot :D

ExtreeM

thx mutor again and again ;)

ExtreeM

Mutor im still new at this :(

How do the script work, should i put it into all the other scripts or does it work as seperat script? i triyed to add it as a normal script and moved it to the TOP in ptokax script editor, is this the wrong way to do it, it didnt work hehe

ExtreeM

Mutor i dont now if its me or what, but cant seem to find anything about "clear menu" in PxCommands 1.1b Lite Ed. LUA 5.1 [Strict]

ExtreeM

ohh my good Mutor im really really sorry, damn i a big noob LOL, i think i need glasses m8, i think im just a little bit confused about the whole thing atm, all of the things is new for me and i always have a 1000 question here at start.

SMF spam blocked by CleanTalk