PtokaX forum

Archive => Archived 4.0 boards => Request for Lua 4 scripts => Topic started by: dvxjunkie on 12 March, 2004, 06:03:38

Title: old script cant find with search
Post by: dvxjunkie on 12 March, 2004, 06:03:38
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.  
Title:
Post by: TiMeTrAVelleR on 12 March, 2004, 09:18:11
--// 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