I looking for a stand alone script that will not allow ops of any profile to to kick any op of any profile. no ops kicking ops period. I thought there was a script but I cant seem to find it and the newer ones all have Master allowed to kick ops.
--// Opwar protection ----------------------------------------------------
-- by: gg3k
-- file: OpKicks.lua
-- credits: originally based on a function by chiller.
--// Configuration
BotName = "Hub-Security"
sLogFile = "opkicks.log"
-- Ops may only kick users that belong to a kicklevel below their own.
-- An op at level Master may kick ops of level Operator and below.
-- 0 is the highest level.
AllowLevels = {
["Master"] = 0,
["Operator"] = 2,
["VIP"] = 3,
}
-- Configuration end.. -- Do NOT modify below here.
OpIPs = { }
Protected = { }
--// This function is fired at the serving start
function Main()
setlocale("swe")
end
--// This function is fired when a new data arrives
function DataArrival(curUser, sData)
sData=strsub(sData,1,strlen(sData)-1)
if strsub(sData,1,6) == "$Kick " then
_,_,whoTo = strfind(sData,"$Kick%s+(.*)")
name=GetItemByName(whoTo)
if AllowLevels[GetProfileName(curUser.iProfile)] >= AllowLevels[GetProfileName(name.iProfile)] then
curUser:SendData("<"..BotName.."> "..name.sName.." is of higher or equal level. Do NOT kick other ops!!")
writelog("OpKick: "..curUser.sName.." Target: "..name.sName)
return 1
end
elseif strsub(sData,1,1) == "<" then
_,_,cmd = strfind(sData, "%b<>%s+(%S+)")
if strlower(cmd) == "!ban" then
_,_,whoTo = strfind(sData,"%b<>%s+%S+%s+(%S+)")
name=GetItemByName(whoTo)
if AllowLevels[GetProfileName(curUser.iProfile)] >= AllowLevels[GetProfileName(name.iProfile)] then
curUser:SendData("<"..BotName.."> "..name.sName.." is of higher or equal level. Do NOT ban other ops!!")
writelog("OpBan: "..curUser.sName.." Target: "..name.sName)
return 1
end
elseif strlower(cmd) == "!drop" then
_,_,whoTo = strfind(sData,"%b<>%s+%S+%s+(%S+)")
name=GetItemByName(whoTo)
if AllowLevels[GetProfileName(curUser.iProfile)] >= AllowLevels[GetProfileName(name.iProfile)] then
curUser:SendData("<"..BotName.."> "..name.sName.." is of higher or equal level. Do NOT kick other ops!!")
writelog("OpKick: "..curUser.sName.." Target: "..name.sName)
return 1
end
elseif strlower(cmd) == "!nickban" then
_,_,whoTo = strfind(sData,"%b<>%s+%S+%s+(%S+)")
name=GetItemByName(whoTo)
if AllowLevels[GetProfileName(curUser.iProfile)] >= AllowLevels[GetProfileName(name.iProfile)] then
curUser:SendData("<"..BotName.."> "..name.sName.." is of higher or equal level. Do NOT ban other ops!!")
writelog("OpBan: "..curUser.sName.." Target: "..name.sName)
return 1
end
elseif strlower(cmd) == "!banip" then
_,_,whoTo = strfind(sData,"%b<>%s+%S+%s+(%S+)")
name=GetItemByName(OpIPs[whoTo])
if AllowLevels[GetProfileName(curUser.iProfile)] >= AllowLevels[GetProfileName(name.iProfile)] then
curUser:SendData("<"..BotName.."> "..name.sName.." is of higher or equal level. Do NOT ban other ops!!")
writelog("OpBanIP: "..curUser.sName.." Target: "..name.sName)
return 1
end
end
end
end
--// This function is fired when an operator enters the hub
function OpConnected(curUser)
OpIPs[curUser.sIP] = curUser.sName
end
--// This function is fired when an operator disconnects
function OpDisconnected(curUser)
OpIPs[curUser.sIP] = nil
end
--// Help functions ----------------------------------------------------
function writelog(message)
appendto(sLogFile)
write(date().."-> "..message.."\n")
writeto()
end