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. :)
Looks familiar :D
Btw, it could also have an option to block connection to specific users. It would be interesting.
Cheers
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.