PtokaX forum

Archive => HOW-TO's => Archived 5.1 boards => Old HOW-TO's => Topic started by: bastya_elvtars on 07 August, 2005, 15:24:06

Title: PtokaX API Extension
Post by: bastya_elvtars on 07 August, 2005, 15:24:06
This introduces 4 new methods inside the frmHub object, which make redirect management easier.

frmHub:GetRed(what) returns 0 if off, 1 if on, -1 on failure
frmHub:GetRedAddy(what) returns the redirect address or -1 on failure.
frmHub:SetRed(what,option) option can be 0 or 1, returns non-nil on success, nil on failure
frmHub:SetRedAddy(what,addy) returns non-nil on success, nil on failure

what can be:

    "share"
    "maxhubs"
    "ratio"
    "slots"
    "full"
    "allnew"
    "ban"
    "default"
    "regonly"
    "tempban"
    "nickrule"
    "notag"

frmHub.SetRedAddy=function(self,what,addy)
  local FuncTable=
  {
    ["share"]=function (addy)
 self:SetShareRedirAddr(addy)
end,
    ["slots"]=function (addy)
 self:SetSlotsRedirAddr(addy)
end,
    ["ratio"]=function (addy)
 self:SetRatioRedirAddr(addy)
end,
    ["maxhubs"]=function (addy)
   self:SetMaxHubsRedirAddr(addy)
 end,
    ["nickrule"]= function (addy)
self:SetNickRuleRedirAddr(addy)
     end,
    ["tempban"]=function (addy)
   self:SetTempBanRedirAddr(addy)
 end,
    ["regonly"]=function (addy)
   self:SetRegOnlyRedirAddr(addy)
 end,
    ["ban"]=function (addy)
self:SetBanRedirAddr(addy)
     end,
    ["default"]=function (addy)
   self:SetRedirectAddress(addy)
 end,
    ["notag"]=function (addy)
self:SetNoTagRedirAddr(addy)
end,
  }
  if FuncTable[what] then
    FuncTable[what](addy)
    return true
  end
end

frmHub.GetRedAddy=function(self,what)
  local FuncTable=
  {
    ["share"]=function ()
 return self:GetShareRedirAddr()
end,
    ["slots"]=function ()
 return self:GetSlotsRedirAddr()
end,
    ["ratio"]=function ()
 return self:GetRatioRedirAddr()
end,
    ["maxhubs"]=function ()
   return self:GetMaxHubsRedirAddr()
 end,
    ["nickrule"]=function ()
return self:GetNickRuleRedirAddr()
     end,
    ["tempban"]=function ()
   return self:GetTempBanRedirAddr()
 end,
    ["regonly"]=function ()
   return self:GetRegOnlyRedirAddr()
 end,
    ["ban"]=function ()
return self:GetBanRedirAddr()
     end,
    ["default"]=function ()
   return self:GetRedirectAddress()
 end,
    ["notag"]=function ()
     return self:GetNoTagRedirAddr()
   end
  }
  if not FuncTable[what] then return -1
  else return FuncTable[what]() end
end

frmHub.SetRed=function(self,what,p)
  local FuncTable=
  {
    ["share"]=function (p)
 self:SetShareRedirect(p)
end,
    ["slots"]=function (p)
 self:SetSlotsRedirect(p)
end,
    ["ratio"]=function (p)
 self:SetRatioRedirect(p)
end,
    ["maxhubs"]=function (p)
   self:SetMaxHubsRedirect(p)
 end,
    ["nickrule"]=function (p)
self:SetNickRuleRedirect(p)
     end,
    ["tempban"]=function (p)
   self:SetTempBanRedirect(p)
 end,
    ["regonly"]=function (p)
   self:SetRegOnlyRedirect(p)
 end,
    ["ban"]=function (p)
self:SetBanRedirect(p)
     end,
    ["allnew"]=function (p)
   if p then self:SetRedirectFull(math.abs(p-1)) end -- lol
   self:SetRedirectAll(p)
 end,
    ["full"]=function (p)
     self:SetRedirectFull(p)
   end,
  }
  if FuncTable[what] then
    FuncTable[what](p)
    return true
  end
end

frmHub.GetRed=function(self,what)
  local FuncTable=
  {
    ["share"]=function ()
 return self:GetShareRedirect()
end,
    ["slots"]=function ()
 return self:GetSlotsRedirect()
end,
    ["ratio"]=function ()
 return self:GetRatioRedirect()
end,
    ["maxhubs"]=function ()
   return self:GetMaxHubsRedirect()
 end,
    ["nickrule"]=function ()
return self:GetNickRuleRedirect()
     end,
    ["tempban"]=function ()
   return self:GetTempBanRedirect()
 end,
    ["regonly"]=function ()
   return self:GetRegOnlyRedirect()
  end,
    ["ban"]=function ()
return self:GetBanRedirect()
     end,
    ["allnew"]=function ()
   return self:GetRedirectAll()
 end,
    ["full"]=function ()
     return self:GetRedirectFull()
   end,
  }
  if not FuncTable[what] then return -1
  else return FuncTable[what]() end
end