OP Connection Blocker
 

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

OP Connection Blocker

Started by Fangs404, 10 May, 2005, 06:42:53

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Fangs404

i wrote this because i needed a way for a few select admins on my hub to be able to block connections to themselves (for bandwidth purposes).  type !block to block all connections to yourself for one session and !unblock to allow all connections.

-- OP Connection Blocker v1.0
-- by Fangs404
-- last modified 5/9/05
-- tested with PtokaX 0.3.3.0 build 17.03

sBot = frmHub:GetHubBotName()
tPrefixes = frmHub:GetPrefixes()
tBlockedOps = {}

function ChatArrival(user, sData)
	local _,_,sCmd = string.find(sData, "^%b<>%s*(.*)|")
	if user.bOperator then
		local index = findOpPos(user)
		if isValidCmd(sCmd, "block") then
			if index == 0 then
				table.insert(tBlockedOps, user)
			end
			user:SendData(sBot, "All connections to you are blocked.")
			return 1
		elseif isValidCmd(sCmd, "unblock") then
			if index ~= 0 then
				table.remove(tBlockedOps, index)
			end
			user:SendData(sBot, "All connections to you are allowed.")
			return 1
		end
	end
end

function ConnectToMeArrival(user, sData)
	local _,_,sName,sIP = string.find(sData, "(%S*)%s*(%S*)|$")
	connectee = GetItemByName(sName)
	if connectee and connectee.bOperator and findOpPos(connectee) ~= 0 then
		user:SendData(sBot, "All connections to "..sName.." are currently blocked.")
		return 1
	end
end

function RevConnectToMeArrival(user, sData)
	local _,_,sName = string.find(sData, "(%S*)|$")
	connectee = GetItemByName(sName)
	if connectee and connectee.bOperator and findOpPos(connectee) ~= 0 then
		user:SendData(sBot, "All connections to "..sName.." are currently blocked.")
		return 1
	end
end

function findOpPos(user)
	for index in tBlockedOps do
		if user.sName == tBlockedOps[index].sName then
			return index
		end
	end
	return 0
end

function isValidCmd(sCurCmd, sNeedCmd)
	for index in tPrefixes do
		if sCurCmd == (tPrefixes[index]..sNeedCmd) then
			return 1
		end
	end
end

suggestions and comments are definitely appreciated.  :)

jiten

Looks familiar :D
Btw, it could also have an option to block connection to specific users. It would be interesting.

Cheers

Fangs404

QuoteOriginally posted by jiten
Looks familiar :D
Btw, it could also have an option to block connection to specific users. It would be interesting.

Cheers

yeah, i saw something similar elsewhere, but it didn't do quite what i needed it to.

yeah, the block connection to specific users may be added later.  good thought, though.

SMF spam blocked by CleanTalk