API GetZonePVPInfo

Returns PVP info for the current zone. pvpType, isFFA, faction = GetZonePVPInfo;

Returns

 * pvpType : String - One of the following values:
 * "arena", if you are in an arena
 * "friendly", if the zone is controlled by the faction the player belongs to.
 * "contested" if the zone is contested (PvP server only)
 * "hostile", if the zone is controlled by the opposing faction.
 * "sanctuary", if the zone is a sanctuary and does not allow pvp combat (2.0.x).
 * "combat", if it is a combat zone where players are automatically flagged for PvP combat (3.0.x). Currently applies only to the Wintergrasp zone.
 * nil, if the zone is none of the above. Happens inside instances, including battlegrounds, and on PvE servers when the zone would otherwise be "contested".
 * isFFA : Integer - 1 if in a free-for-all arena, nil otherwise.
 * faction : String - the name of the faction controlling the zone if pvpType is "friendly" or "hostile".

Example
local zone = GetRealZoneText .. " - " .. tostring(GetSubZoneText); local pvpType, isFFA, faction = GetZonePVPInfo; if (pvpType == "friendly" or pvpType == "hostile") then zone = zone .. " is controlled by " .. faction .. " (" .. pvpType .. ")"; elseif (pvpType == "sanctuary") then zone = zone .. " is a PvP-free sanctuary."; elseif (isFFA) then zone = zone .. " is a free-for-all arena."; else zone = zone .. " is a contested zone."; end DEFAULT_CHAT_FRAME:AddMessage(zone);

Result
Displays information about the current zone in the default chat frame. Example outputs include: Stormwind CIty - War Room is controlled by Alliance (friendly) Alterac Valley - Dun Baldar Pass is a contested zone.