Referência › Referência de funções › Platform

Platform.roster_class.GetRosterClassObservation

pública

Chame como

addon.Platform:GetRosterClassObservation(unit)

Disponível diretamente por meio de addon; nenhuma dependência é necessária.

O que faz

Lê a identidade pública da lista do grupo em famílias de cliente identificadas. A entrada é limitada a player, party1 a party4 e raid1 a raid40. Chama primeiro UnitExists com esse token exato de um argumento; um false conhecido retorna false sem consultar a classe. Para uma unidade presente, consome apenas o segundo retorno de UnitClass como texto de nome de arquivo de classe legível e não vazio, sem restrição a um enum de classes. Dados necessários ausentes, com falha, malformados ou restritos retornam nil com um motivo.

Argumentos

NomeTipoO que faz
selfRMPlatformAdaptador de plataforma do Rotation Master (implícito nas chamadas com dois-pontos).
unitstringToken exato pertencente à função auxiliar: player, party1..party4 ou raid1..raid40.

Retornos

1string | boolean | nilTexto do nome de arquivo de classe observado, false para unidade sabidamente ausente ou nil quando indisponível.
2string | nilMotivo de validação, política ou disponibilidade para um resultado nil.

Edições

As funções auxiliares integradas são registradas em todas as edições. O que muda é a API do jogo que elas leem; quando uma está ausente, a função auxiliar recorre a uma alternativa ou retorna nil com um motivo.

  • Indisponível nessa edição (o motivo está na dica)
  • Só enquanto as alternativas da Blizzard para APIs obsoletas estiverem ativas
API do jogoClassic EraTBC AnniversaryClassic ProgressionForeverRetail
UnitClassClassic EraTBC AnniversaryClassic ProgressionForeverRetail
UnitExistsClassic EraTBC AnniversaryClassic ProgressionForeverRetail
canaccessvalueClassic EraTBC AnniversaryClassic ProgressionForeverRetail

Valores secretos (Retail e Forever)

No Retail e no Forever, o jogo entrega valores secretos aos addons. Esta função auxiliar verifica o que lê (addon.Platform:CanReadValue) e retorna nil com um motivo como restricted-value em vez de um valor secreto que não consegue comparar. Trate nil como indisponível, não como false.

Exemplo

for index = 1, 4 do
  local class = addon.Platform:GetRosterClassObservation("party" .. index)
  if class == "PRIEST" then return true end
end
return false

Dependências

Código-fonte

Platform/roster_class.lua, linha 29. Somente leitura no jogo; Duplicar cria uma cópia editável.

Platform.roster_class.GetRosterClassObservation(self, unit)
    if not self:CanReadValue(unit) then return nil,'restricted-value' end
    if type(unit)~='string' or not rosterUnit(unit) then return nil,'invalid-roster-unit' end
    if self:GetClientFamily()=='unknown' then return nil,'unsupported-client' end
    if type(UnitExists)~='function' then return nil,'missing-api' end
    local ok,exists=pcall(UnitExists,unit)
    if not ok then return nil,'api-error' end
    if not self:CanReadValue(exists) then return nil,'restricted-value' end
    if exists==nil then return nil,'roster-data-unavailable' end
    if type(exists)~='boolean' then return nil,'invalid-api-result' end
    if not exists then return false end
    if type(UnitClass)~='function' then return nil,'missing-api' end
    local success,_,class=pcall(UnitClass,unit)
    if not success then return nil,'api-error' end
    if not self:CanReadValue(class) then return nil,'restricted-value' end
    if canaccessvalue and not canaccessvalue(class) then return nil,'restricted-value' end
    if class==nil then return nil,'roster-class-unavailable' end
    if type(class)~='string' or class=='' then return nil,'invalid-api-result' end
    return class

Voltar para Referência de funções