Publichub block-script!
 

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

Publichub block-script!

Started by zvamp, 06 October, 2006, 12:53:45

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

zvamp

Hi!!

My hub is in great need of a script that blocks/kicks/timebans users who visit publichubs.

Psycho_Chihuahua

search the board - AFAIK such a script already exists
PtokaxWiki ?PtokaX Mirror + latest Libs

01100001011011000111001101101111001000000110101101101110011011110111011101101110001000000110000101110011001000000101010001101111011010110110111101101100011011110111001101101000

zvamp

thanx your wrere right hehe
Posted on: 2006-10-06, 14:23:55
--[[

	Anti-Open Hub by Herodes

]]--

tBad = {}
Settings = {
	-- Bot Name
	sBot = frmHub:GetHubBotName(),
	-- How many seconds before disconnecting
	iTimeAfter = 15,
}

Main = function()
	SetTimer(1000); StartTimer()
end

NewUserConnected = function(user)
	if user.iNormalHubs then
		if user.iNormalHubs > 0 then
			tBad[user.sName] = Settings.iTimeAfter
			user:SendData( "Helvetia", "You are in public hubs which is violating against our hubrules. "..
			"This is why your connection will be terminated in "..Settings.iTimeAfter.." seconds!!!")
		end
	end
end

OnTimer = function()
	for i,v in ipairs(frmHub:GetOnlineNonOperators()) do
		if v.iNormalHubs and v.iNormalHubs > 0 and not tBad[v.sName] then tBad[v.sName] = Settings.iTimeAfter end
	end
	for nick,v in pairs(tBad) do
		local user = GetItemByName(nick)
		if user.iNormalHubs then
			if user.iNormalHubs == 0 then
				tBad[nick] = nil
				user:SendData(Settings.sBot, "Thank you for closing the public hubs and are now following "..
				"our rules.")
			elseif user.iNormalHubs > 0 then
				tBad[nick] = tBad[nick] - 1
				if tBad[nick] == 0 then
					tBad[nick] = nil
					user:SendData(Settings.sBot,"Your connection was terminated because you were in public hubs. "..
					"Feel free to return once you have closed your public hub connections.")
					user:Disconnect()
				elseif tBad[nick] == math.floor(Settings.iTimeAfter/2) then
					user:SendData (Settings.sBot," Please don't hang around in public "..
					"File-Sharing-Platforms. This is dangerous for you and for us. You still have "..
					math.floor(Settings.iTimeAfter/2).." seconds left until your connection is terminated..")
				end
			end
		end
	end
end

UserDisconnected = function(user)
	if tBad[user.sName] then tBad[user.sName] = nil; collectgarbage(); end
end


I like this script very much!! but I need the script to timeban user 1h =)

Stormbringer

QuoteMy hub is in great need of a script that blocks/kicks/timebans users who visit publichubs.

And for which valid reasons please?
I'm interested by your answer



zvamp


Stormbringer

LOL. Excellent rules.
I guess the public hub are possessed by the demon...





Herodes

I have just tested that this can be loaded in PtokaX,..

pls test and post some feedback,.. not tested in action!

--- Anti-Open Hub v2
--- by Herodes

tBad = {}
tSettings = {
	-- Bot Name
	sBot = frmHub:GetHubBotName(),
	-- OpChat Name or Name that the operators ar going to be notified from.
	sOpChat = frmHub:GetOpChatName(),
	-- How many seconds before disco/tban/pban the user?
	iTimeAfter = 15,
	-- Notify the operators?
	bNotifyOps = true,
	-- What should we do? ::  0:nothing / 1:disconnect / 2:permban / whatever other number is the minutes to tempban the guy.
	iAction = 1,
	-- If iActions is set to tban the user. Then this says for how many minutes.
	iTempBanTime = 60
}

function Main()
	SetTimer(1000);
	StartTimer()
end

function NewUserConnected( user )
	if user.iNormalHubs and user.iNormalHubs > 0 then
		tBad[user.sName] = tSettings.iTimeAfter
		user:SendData( "Helvetia", "You are in public hubs which is violating against our hubrules. This is why you are going to be disconnected in "..Settings.iTimeAfter.." seconds!!!")
		SendPmToOps( tSettings.sOpChat, user.sName.." - ["..user.sIP.."] on "..os.date("%x %X").." entered with ".. user.iNormalHubs.." public hubs in the tag." )
	end
end

function OnTimer()
	for i,v in ipairs(frmHub:GetOnlineNonOperators()) do
		if v.iNormalHubs and v.iNormalHubs > 0 and not tBad[v.sName] then
			tBad[v.sName] = tSettings.iTimeAfter
		end
	end
	for nick,v in pairs(tBad) do
		local user = GetItemByName(nick)
		if user.iNormalHubs then
			if user.iNormalHubs == 0 then
				table.remove(tBad, nick)
				user:SendData(tSettings.sBot, "Thank you for closing the public hubs and are now following our rules.")
			else
				tBad[nick] = tBad[nick] - 1
				if tBad[nick] == 0 then
					table.remove( tBad, nick )
					if tSettings.iAction == 1 then
						user:SendData(tSettings.sBot,"Your connection was terminated because you were in public hubs. Feel free to return once you have closed your public hub connections.")
						user:Disconnect()
					elseif tSettings.iAction == 2 then
						user:SendData( tSettings.sBot, "You haven't realised we where talking bussiness with the number of public hubs. So off you go,... permantely Banned!")
						user:Ban("Public Hubs Disobidience", tSettings.sBot, true)
					elseif tSettings.iAction > 2 then
						user:SendData( tSettings.sBot, "You haven't realised we where talking bussiness with the number of public hubs. So off you go,... temporalily Banned!")
						user:TempBan(tSettings.iTempBanTime, "Public Hubs Disobidience", tSettings.sBot, true)
					end
				elseif tBad[nick] == math.floor(tSettings.iTimeAfter/2) then
					user:SendData(tSettings.sBot," Please don't hang around in public File-Sharing-Platforms. This is dangerous for you and for us. You still have "..
					math.floor(tSettings.iTimeAfter/2).." seconds left until your connection is terminated..")
				end
			end
		end
	end
end

UserDisconnected = function(user)
	if tBad[user.sName] then
		table.remove(tBad, user.sName)
		collectgarbage();
	end
end

zvamp

\scripts\Anti-Open-Hub-v2.lua:28: attempt to index global 'Settings' (a nil value)
\scripts\Anti-Open-Hub-v2.lua:48: bad argument #2 to 'remove' (number expected, got string)
\scripts\Anti-Open-Hub-v2.lua:41: attempt to index local 'user' (a nil value)

The script does not disconnect/timeban, it just says :Please don't hang around in public File-Sharing-Platforms. This is dangerous for you and for us. You still have 7 seconds left until your connection is terminated..

and nothing else happens..


Psycho_Chihuahua

#9
\scripts\Anti-Open-Hub-v2.lua:28: attempt to index global 'Settings' (a nil value)

is easy to fix
change
"..Settings.iTimeAfter.."
to
"..tSettings.iTimeAfter.."



as for the other, i haven't found the problem
\scripts\aoh.lua:48: bad argument #2 to 'remove' (number expected, got string)


but check that you are using a Lua 5.1 version of ptokax
PtokaxWiki ?PtokaX Mirror + latest Libs

01100001011011000111001101101111001000000110101101101110011011110111011101101110001000000110000101110011001000000101010001101111011010110110111101101100011011110111001101101000

zvamp

thanks Psycho_Chihuahua =) yes I`m using lua 5.1

but still this error: \Anti-Open-Hub-v2.lua:48: bad argument #2 to 'remove' (number expected, got string)

Does not kick/timeban..


Psycho_Chihuahua

Quote from: Psycho_Chihuahua on 07 October, 2006, 17:14:52
as for the other, i haven't found the problem
\scripts\aoh.lua:48: bad argument #2 to 'remove' (number expected, got string)


like i mentioned before, i haven't figured that one out yet :(
PtokaxWiki ?PtokaX Mirror + latest Libs

01100001011011000111001101101111001000000110101101101110011011110111011101101110001000000110000101110011001000000101010001101111011010110110111101101100011011110111001101101000

Herodes

#12
Quote from: Psycho_Chihuahua on 07 October, 2006, 23:12:05
like i mentioned before, i haven't figured that one out yet :(
yep that one is my bad...
I'll explain,...

tTable = { [1] = "ok", ["not"] = "ok" }

table.remove( tTable, 1 ) -- this is equal
tTable[1] = nil; -- to this...
-- but tTable["not"] can't be removed unless you do this :
tTable["not"] = nil;
-- the following will not work..
table.remove( tTable, "not" )

I hope this clears it up...
here is the script.. again not tested

--- Anti-Open Hub v2
--- by Herodes

tBad = {}
tSettings = {
	-- Bot Name
	sBot = frmHub:GetHubBotName(),
	-- OpChat Name or Name that the operators ar going to be notified from.
	sOpChat = frmHub:GetOpChatName(),
	-- How many seconds before disco/tban/pban the user?
	iTimeAfter = 15,
	-- Notify the operators?
	bNotifyOps = true,
	-- What should we do? ::  0:nothing / 1:disconnect / 2:permban / whatever other number is the minutes to tempban the guy.
	iAction = 1,
	-- If iActions is set to tban the user. Then this says for how many minutes.
	iTempBanTime = 60
}

function Main()
	SetTimer(1000);
	StartTimer()
end

function NewUserConnected( user )
	if user.iNormalHubs and user.iNormalHubs > 0 then
		tBad[user.sName] = tSettings.iTimeAfter
		user:SendData( tSettings.sBot, "You are in public hubs which is violating against our hubrules. This is why you are going to be disconnected in "..tSettings.iTimeAfter.." seconds!!!")
		SendPmToOps( tSettings.sOpChat, user.sName.." - ["..user.sIP.."] on "..os.date("%x %X").." entered with ".. user.iNormalHubs.." public hubs in the tag." )
	end
end

function OnTimer()
	for i,v in ipairs(frmHub:GetOnlineNonOperators()) do
		if v.iNormalHubs and v.iNormalHubs > 0 and not tBad[v.sName] then
			tBad[v.sName] = tSettings.iTimeAfter
		end
	end
	for nick,v in pairs(tBad) do
		local user = GetItemByName(nick)
		if user.iNormalHubs then
			if user.iNormalHubs == 0 then
				table.remove(tBad, nick)
				user:SendData(tSettings.sBot, "Thank you for closing the public hubs and are now following our rules.")
			else
				tBad[nick] = tBad[nick] - 1
				if tBad[nick] == 0 then
					tBad[nick] = nil;
					if tSettings.iAction == 1 then
						user:SendData(tSettings.sBot,"Your connection was terminated because you were in public hubs. Feel free to return once you have closed your public hub connections.")
						user:Disconnect()
					elseif tSettings.iAction == 2 then
						user:SendData( tSettings.sBot, "You haven't realised we where talking bussiness with the number of public hubs. So off you go,... permantely Banned!")
						user:Ban("Public Hubs Disobidience", tSettings.sBot)
					elseif tSettings.iAction > 2 then
						user:SendData( tSettings.sBot, "You haven't realised we where talking bussiness with the number of public hubs. So off you go,... temporalily Banned!")
						user:TempBan( tSettings.iTempBanTime, "Public Hubs Disobidience", tSettings.sBot)
					end
				elseif tBad[nick] == math.floor(tSettings.iTimeAfter/2) then
					user:SendData(tSettings.sBot," Please don't hang around in public File-Sharing-Platforms. This is dangerous for you and for us. You still have "..tBad[nick].." seconds left until your connection is terminated..")
				end
			end
		end
	end
end

function UserDisconnected( user )
	if tBad[user.sName] then
		tBad[user.sName] = nil;
		collectgarbage();
	end
end

zvamp

#13
\scripts\Anti-Open-Hub-v2.lua:43: bad argument #2 to 'remove' (number expected, got string)

"You haven't realised we where talking bussiness with the number of public hubs. So off you go,... temporalily Banned!"

The script does not timeban =(
thanx for helping us out:)

Herodes

Script edited once again,... could you pls grab it again?

okie here is the catch
user:TempBan()
user:TempBan(iTime, sReason, sBy, bFull)	   -- iTime is in minutes (0 = default tempban time from gui) !

user:Ban()
user:Ban(sReason, sBy, bFull)

I don't really know what the bFull function argument is doing.
So I just took it off in the script.

zvamp

#15
Disconnect works fine.. No errors, but still it will not tempban & permban..

this is the script version I use now. I put iAction = 60, is this right??

--- Anti-Open Hub v2
--- by Herodes

tBad = {}
tSettings = {
	-- Bot Name
	sBot = frmHub:GetHubBotName(),
	-- OpChat Name or Name that the operators ar going to be notified from.
	sOpChat = frmHub:GetOpChatName(),
	-- How many seconds before disco/tban/pban the user?
	iTimeAfter = 15,
	-- Notify the operators?
	bNotifyOps = true,
	-- What should we do? ::  0:nothing / 1:disconnect / 2:permban / whatever other number is the minutes to tempban the guy.
	iAction = 60,
	-- If iActions is set to tban the user. Then this says for how many minutes.
	iTempBanTime = 60
}

function Main()
	SetTimer(1000);
	StartTimer()
end

function NewUserConnected( user )
	if user.iNormalHubs and user.iNormalHubs > 0 then
		tBad[user.sName] = tSettings.iTimeAfter
		user:SendData( tSettings.sBot, "You are in public hubs which is violating against our hubrules. This is why you are going to be disconnected in "..tSettings.iTimeAfter.." seconds!!!")
		SendPmToOps( tSettings.sOpChat, user.sName.." - ["..user.sIP.."] on "..os.date("%x %X").." entered with ".. user.iNormalHubs.." public hubs in the tag." )
	end
end

function OnTimer()
	for i,v in ipairs(frmHub:GetOnlineNonOperators()) do
		if v.iNormalHubs and v.iNormalHubs > 0 and not tBad[v.sName] then
			tBad[v.sName] = tSettings.iTimeAfter
		end
	end
	for nick,v in pairs(tBad) do
		local user = GetItemByName(nick)
		if user.iNormalHubs then
			if user.iNormalHubs == 0 then
				table.remove(tBad, nick)
				user:SendData(tSettings.sBot, "Thank you for closing the public hubs and are now following our rules.")
			else
				tBad[nick] = tBad[nick] - 1
				if tBad[nick] == 0 then
					tBad[nick] = nil;
					if tSettings.iAction == 1 then
						user:SendData(tSettings.sBot,"Your connection was terminated because you were in public hubs. Feel free to return once you have closed your public hub connections.")
						user:Disconnect()
					elseif tSettings.iAction == 2 then
						user:SendData( tSettings.sBot, "You haven't realised we where talking bussiness with the number of public hubs. So off you go,... permantely Banned!")
						user:Ban("Public Hubs Disobidience", tSettings.sBot)
					elseif tSettings.iAction > 2 then
						user:SendData( tSettings.sBot, "You haven't realised we where talking bussiness with the number of public hubs. So off you go,... temporalily Banned!")
						user:TempBan( tSettings.iTempBanTime, "Public Hubs Disobidience", tSettings.sBot)
					end
				elseif tBad[nick] == math.floor(tSettings.iTimeAfter/2) then
					user:SendData(tSettings.sBot," Please don't hang around in public File-Sharing-Platforms. This is dangerous for you and for us. You still have "..tBad[nick].." seconds left until your connection is terminated..")
				end
			end
		end
	end
end

function UserDisconnected( user )
	if tBad[user.sName] then
		tBad[user.sName] = nil;
		collectgarbage();
	end
end

bastya_elvtars

Quote from: Stormbringer on 06 October, 2006, 21:14:52
LOL. Excellent rules.
I guess the public hub are possessed by the demon...

:)
Everything could have been anything else and it would have just as much meaning.

BrotherBear

#17
Hi!

I have changed a little bit in Mutor's Script and hope that I am doing this right now :)

Have I done something wrong with posting it like this then say so.

--[[
	NoPubHub 1.1 LUA 5.0/5.1
	
		By Mutor 07/18/06
		Minor changes By BrotherBear 10/25/06

	Requested by WingZero

	Send PM to OpChat about users who are in public hubs and the OP's can decide what to do :)

	- Check / Exclude by profile [set Exclude table ~line 22]
	- Checks in MyINFOArrival to detect public connections made after login
]]
tSettings = {
	-- OpChat Name or Name that the operators ar going to be notified from.
	sOpChat = frmHub:GetOpChatName(),
}

MyINFOArrival = function(user,data)
	--Exclude check by profile
	--[#] = {0=check/1=exclude, "Profile Name"},
	local Exclude = {
		[-1] = {1,"Unregistered User"},
		[0] = {0,"Master"},
		[1] = {1,"Operator"},
		[2] = {0,"Vip"},
		[3] = {0,"Registered User"},
		[4] = {0,"Moderator"},
		[5] = {1,"NetFounder"},
		}
	if not Exclude[user.iprofile] or Exclude[user.iprofile][1] ~= 1 then
		if user.iNormalHubs ~= 0 then
			SendPmToOps( tSettings.sOpChat, "User: "..user.sName.." with IP: "..user.sIP.." and Tag "..user.sTag.." was detected in ".. user.iNormalHubs.." public hub(s) at "..os.date("%x %X") )
			return 1
		end
	end
end


Hope you enjoy it :)
Regards,

BrotherBear

zvamp

#18
Nice BrotherBear and Mutor =) but there is an error with Mutors version when a user logs in with publichubs:

lua:31: attempt to index field '?' (a nil value)

Thor

Change
Code: lua
if not Exclude[user.iprofile] or Exclude[user.iprofile][1] ~= 1 then
		if user.iNormalHubs ~= 0 then
			local  Profile = Exclude[user.iprofile][2] or "Unknown Profile"

To:
Code: lua
if not Exclude[user.iProfile] or Exclude[user.iProfile][1] ~= 1 then
		if user.iNormalHubs ~= 0 then
			local  Profile = Exclude[user.iProfile][2] or "Unknown Profile"


Grax

Sorry my english is very bad.
here a new version
--[[
	NoPubHub 1.1 LUA 5.0/5.1

		By Mutor 07/18/06
		Minor changes By BrotherBear 10/25/06

	Requested by WingZero

	Send PM to OpChat about users who are in public hubs and the OP's can decide what to do :)

	- Check / Exclude by profile [set Exclude table ~line 22]
	- Checks in MyINFOArrival to detect public connections made after login
	- Timer function and disconnect (added by Grax & Pulsar 24.07.2007)
]]

tBadOnes = {}
iTimeAfter = 60 -- how many seconds before disconnecting

function Main()
	SetTimer( 1000 )
	StartTimer()
end

MyINFOArrival = function(user,data)
	-- OpChat Name or Name that the operators ar going to be notified from.
	local sBot = frmHub:GetHubBotName()
	--Exclude check by profile
	--[#] = {0=check/1=exclude, "Profile Name"},
	local Exclude = {
		[-1] = {0,"Unregistered User"},
		[0] = {1,"Master"},
		[1] = {0,"Operator"},
		[2] = {0,"Vip"},
		[3] = {0,"Registered User"},
		[4] = {1,"Moderator"},
		[5] = {1,"NetFounder"},
		}

	if not Exclude[user.iProfile] or Exclude[user.iProfile][1] ~= 1 then
		if user.iNormalHubs ~= 0 then
			tBadOnes[user.sName] = iTimeAfter
			user:SendData(sBot, "Du bist in "..user.iNormalHubs.." Open Hubs. Verbindung wird in "..iTimeAfter.." Sekunden zur?ckgesetzt!")
			local  Profile = Exclude[user.iProfile][2] or "Unknown Profile"
			return SendPmToOps(sBot, "\r\n\r\n\tUser : "..user.sName..
			"\r\n\tProfil : "..Profile.."\r\n\tIP : "..user.sIP..
			"\r\n\tTag : "..user.sTag.."\r\n\r\n\t wurde am "..os.date("%x %X").." in "
			..user.iNormalHubs.." Public Hub(s) erwischt!" )
			
		end
	end
end

function OnTimer()
	for nick, v in pairs(tBadOnes) do
		local user = GetItemByName( nick )
		if user.iNormalHubs then
			if user.iNormalHubs == 0 then
				tBadOnes[nick] = nil
				user:SendData(sBot, "Danke, daf?r dass du die Open Hubs geschlossen hast und nun ganz Regelkonform mitmachst." )
			elseif user.iNormalHubs > 0 then
				tBadOnes[nick] = tBadOnes[nick] - 1
				if tBadOnes[nick] == 0 then
					tBadOnes[nick] = nil
					user:SendData(sBot, "Du wirst jetzt Disconnected weil du in Open Hubs rumlungerst. Komm bitte erst wieder wenn du sie geschlossen hast." )
					user:Disconnect()
				elseif tBadOnes[nick] == math.floor( iTimeAfter / 2 ) then
					user:SendData (sBot, " Wir bitten euch inst?ndig nicht in den offenen File-Sharing-Plattformen zu bewegen. Das ist n?mlich auch f?r uns gef?hrlich. Du hast noch "..math.floor( iTimeAfter / 2 ).." Sekunden ?brig bis zur Trennung..." )
				end
			end
		end
	end
end

BrotherBear

Quote from: Stormbringer on 06 October, 2006, 14:28:41
And for which valid reasons please?
I'm interested by your answer

Why are you people always asking about this?

We have a rule that say that the users can not be on Public hubs
when they are in our Hub.

We have a reason why we does this and please respect this.

The users has all right to be on Public hubs, but not when they are
in Our Private hub.

We are doing this to let the users who are in our hub feel that
they are a little more secure against APB in our case.
Regards,

BrotherBear

Stormbringer

QuoteWe are doing this to let the users who are in our hub feel that
they are a little more secure against APB in our case.

lol that was funny, if you told them that it's more safe for them, just stop to lie to them, if they believe what you say they are ignorant, or don't know what is p2p/dc.
It's your hub, you create the rules that you want (I was ban one time from a hub when I had written my nick in uppercase lol, so you see you are not alone to create weird rules lol), but please let me comment this strange choice, it's my right too.

bastya_elvtars

Secure? Unplug the cable, plzkthx
Everything could have been anything else and it would have just as much meaning.

SMF spam blocked by CleanTalk