Client Side

Function

local ArenaAPI = exports.ArenaAPI

---@return table List of arena in active
ArenaAPI:GetArenaList()

---Get arena instant
---@param identifier string Arena identifier
---@return table Arena instant
ArenaAPI:GetArena(identifier)

---@param identifier string Arena identifier
---@return boolean?
ArenaAPI:DoesArenaExists(identifier)

---@param identifier string Arena identifier
---@return table List of player in arena
ArenaAPI:GetPlayerList(identifier)

---@return boolean?
ArenaAPI:IsPlayerInAnyArena()

---@param identifier string Arena identifier
---@return boolean?
ArenaAPI:IsArenaBusy(identifier)

---@return table Player list
ArenaAPI:GetPlayerListArena()

---@param identifier string Arena identifier
---@return boolean?
ArenaAPI:IsPlayerInArena(identifier)

---@param identifier string Arena identifier
---@return string
ArenaAPI:GetArenaLabel(identifier)

---@param identifier string Arena identifier
---@return integer
ArenaAPI:GetArenaMaximumSize(identifier)

---@param identifier string Arena identifier
---@return integer
ArenaAPI:GetArenaMinimumSize(identifier)

---@param identifier string Arena identifier
---@return integer
ArenaAPI:GetArenaCurrentSize(identifier)

---@param identifier string Arena identifier
---@return table [identifier, label, maximumCapacity, minimumCapacity, currentCapacity]
ArenaAPI:GetCurrentArenaData(identifier)

---@return string Current player arena identifier
ArenaAPI:GetCurrentArenaIdentifier()

---@return string Current player arena identifier
ArenaAPI:GetPlayerArena()

Event

---Called whenever someone join arena
---@param identifier string Arena identifier
---@param cb function Callback function
exports.ArenaAPI.OnPlayerJoinLobby(identifier, function(data)
    data.MaximumCapacity -- integer
    data.MinimumCapacity -- integer
    data.CurrentCapacity -- integer
    data.MaximumRoundSaved = -- integer
    data.CurrentRound -- integer
    data.DeleteWorldAfterWin -- boolean?
    data.OwnWorld -- boolean?
    data.OwnWorldID -- integer
    data.ArenaLabel = -- string
    data.ArenaIdentifier -- string
    data.MaximumArenaTime = -- integer
    data.MaximumArenaTimeSaved = -- integer
    data.MaximumLobbyTimeSaved -- integer
    data.MaximumLobbyTime -- integer
    data.ArenaIsPublic -- boolean?
    data.ArenaImageUrl = -- string
    data.CanJoinAfterStart -- boolean?
    data.Password = -- string
    data.PlayerList = -- table
    data.PlayerScoreList = -- table
    data.PlayerNameList = -- table
    data.PlayerAvatar = -- table
    
    data.ArenaState = -- string
    ---ArenaInactive - No one is in a lobby or arena
    ---ArenaActive - People are in lobby
    ---ArenaBusy - People playing already
end)

---Called whenever player leave arena
---@param identifier string Arena identifier
---@param cb function Callback function
exports.ArenaAPI.OnPlayerExitLobby(identifier, function(data)
end)

---Called whenever arena started game
---@param identifier string Arena identifier
---@param cb function Callback function
exports.ArenaAPI.OnArenaStart(identifier, function(data)
end)

---Called after arena runs out of time or player achieve enough points
---@param identifier string Arena identifier
---@param cb function Callback function
exports.ArenaAPI.OnArenaEnd(identifier, function(data)
end)

---@param identifier string Arena identifier
---@param cb function Callback function
exports.ArenaAPI.OnArenaRoundEnd(identifier, function(data)
end)

---@param identifier string Arena identifier
---@param eventName string Event handle 'roundend, join, leave, start, end'
---@param cb function Callback function
exports.ArenaAPI.On(identifier, eventName, function(data)
end)

Example

local ArenaHelper = exports.ArenaAPI -- Get ArenaAPI library

if ArenaHelper.DoesArenaExists("MyArena") then
   ArenaHelper.OnArenaStart("MyArena", function(data)

   end)

   ArenaHelper.OnArenaEnd("MyArena", function(data)

   end)

   ArenaHelper.OnPlayerJoinLobby("MyArena", function(data)
      if data.ArenaState == "ArenaActive" then
      
      end
   end)

   ArenaHelper.OnPlayerExitLobby("MyArena", function(data)

   end)

   ArenaHelper.On("MyArena", "roundend", function(data)

   end)
end

if ArenaHelper:IsPlayerInArena("MyArena") then
   for k, v in pairs(ArenaHelper:GetPlayerArena()) do
      print(k, v)
   end
end

RegisterCommand('commandName', function(source, args)
	if exports.ArenaAPI:IsPlayerInAnyArena() then
	
	end
end, false)

RegisterCommand('commandName', function(source, args)
	if exports.ArenaAPI:IsPlayerInArena("MyArena") then
	
	end
end, false)

Last updated