Referencia › Referencia de funciones › Platform

Platform.groups.GetGroupMembership

pública

Llamar como

addon.Platform:GetGroupMembership(raidOnly)

Disponible directamente a través de addon; no hace falta ninguna dependencia.

Qué hace

Lee la pertenencia pública al grupo en familias de cliente identificadas. Los clientes desconocidos no son compatibles. Con raidOnly true comprueba IsInRaid; con false o nil comprueba IsInGroup usando su categoría de grupo nativa predeterminada. Un resultado false legible sigue siendo false. Las observaciones que faltan, fallan, están mal formadas o restringidas devuelven nil con un motivo.

Argumentos

NombreTipoQué hace
selfRMPlatformAdaptador de plataforma de Rotation Master (implícito en las llamadas con dos puntos).
raidOnlyboolean | nilTrue solicita la pertenencia a la banda; false o nil solicitan la pertenencia a cualquier grupo.

Retornos

1boolean | nilPertenencia observada, o nil si no está disponible.
2string | nilMotivo de validación o disponibilidad para un resultado nil.

Ediciones

Las funciones auxiliares integradas se registran en todas las ediciones. Lo que cambia es la API del juego que leen; donde falta alguna, la función auxiliar recurre a una alternativa o devuelve nil con un motivo.

  • No disponible en esa edición (el motivo aparece en la información emergente)
  • Solo mientras estén activas las alternativas de Blizzard para API obsoletas
API del juegoClassic EraTBC AnniversaryClassic ProgressionForeverRetail
IsInGroupClassic EraTBC AnniversaryClassic ProgressionForeverRetail
IsInRaidClassic EraTBC AnniversaryClassic ProgressionForeverRetail

Valores secretos (Retail y Forever)

En Retail y Forever, el juego entrega a los addons valores secretos. Esta función auxiliar comprueba lo que lee (addon.Platform:CanReadValue) y, en lugar de un secreto que no puede comparar, devuelve nil con un motivo como restricted-value. Trata nil como no disponible, no como falso.

Ejemplo

local grouped = addon.Platform:GetGroupMembership(false)
local raid = addon.Platform:GetGroupMembership(true)
if grouped == nil or raid == nil then return nil end
return grouped and not raid -- in a party, not a raid

Código fuente

Platform/groups.lua, línea 20. Solo lectura en el juego; Duplicar crea una copia editable.

Platform.groups.GetGroupMembership(self, raidOnly)
    if not self:CanReadValue(raidOnly) then return nil,'restricted-value' end
    if raidOnly~=nil and type(raidOnly)~='boolean' then return nil,'invalid-group-query' end
    if self:GetClientFamily()=='unknown' then return nil,'unsupported-client' end
    local fn
    if raidOnly then fn=IsInRaid else fn=IsInGroup end
    if type(fn)~='function' then return nil,'missing-api' end
    local ok,member=pcall(fn)
    if not ok then return nil,'api-error' end
    if not self:CanReadValue(member) then return nil,'restricted-value' end
    if member==nil then return nil,'group-data-unavailable' end
    if type(member)~='boolean' then return nil,'invalid-api-result' end
    return member

Volver a Referencia de funciones