WoW API: GetBattlefieldStatus

From AddOn Studio
Jump to navigation Jump to search

WoW API < GetBattlefieldStatus

Get the status of the battlefield that the player is either queued for or inside.

status, mapName, instanceID, lowestlevel, highestlevel, teamSize, registeredMatch = GetBattlefieldStatus(index);

Parameters[edit]

Arguments[edit]

index
Index of the battlefield you wish to view

Returns[edit]

status
String - Battlefield status (none, queued, confirm, active, error)
map
String - Localized battlefield name (Warsong Gulch, Arathi Basin, Alterac Valley or nil)
instanceID
Integer - Battlefield instance (returns 0 until you are inside an active battlefield)
lowestLevel
Integer - Lowest level in the battleground that will be joining (10, 20, 30, 40, 51, 60, 61, 70)
highestLevel
Integer - Highest level in the battleground that will be joining (19, 29, 39, 49, 60, 69, 70)
teamSize
Integer - Team size of the battlefields queue (2, 3, 5 or 0 if not an arena queue)
registeredMatch
Integer - Returns 1 if it's a registered arena queue, returns 0 if it's a skirimish or not an arena queue, use teamSize to check for arenas

Details[edit]

Used for retrieving the status of the battlefields that the player is queued or inside of. If the player is not queued for a battlefield you request it'll return a status of none, requesting an index above 3 will return nil, map name will either be the last battlefield this index was used for or nil you should always use status to verify if it's an an active queue/game.

As of Patch 2.4.0 map is displayed as "Eastern Kingdoms" during confirm status, and the real map is shown once it's changed to active. instanceID is now always 0 for arena matches as well.

Status[edit]

  • queued - Waiting for a battlefield to become ready, you're in the queue
  • confirm - Ready to join a battlefield
  • active - Inside an active battlefield
  • none - Not queued for anything in this index
  • error - This should never happen

Example[edit]

Display a list of battlefield brackets and arenas you're currently queued for, pending confirmation, in, or just finished.

local status, mapName, instanceID, minlevel, maxlevel;
for i=1, MAX_BATTLEFIELD_QUEUES do
 status, mapName, instanceID, minlevel, maxlevel, teamSize = GetBattlefieldStatus(i);
 if( teamSize > 0 ) then
   DEFAULT_CHAT_FRAME:AddMessage(mapName .. string.format("%dvs%d (%d-%d): ", minlevel, maxlevel, teamType, teamType) ..status);
 else
   DEFAULT_CHAT_FRAME:AddMessage(mapName .. string.format(" (%d-%d): ", minlevel, maxlevel) ..status);
 end
end