Référence › Référence des fonctions › Platform

Platform.roster_class.GetRosterClassObservation

publique

Appel

addon.Platform:GetRosterClassObservation(unit)

Disponible directement via addon ; aucune dépendance n'est nécessaire.

Ce qu'elle fait

Lit l'identité publique de la composition sur les familles de clients identifiées. Les entrées sont limitées à player, party1 à party4 et raid1 à raid40. Appelle d'abord UnitExists avec cet identifiant exact comme argument unique ; un false connu renvoie false sans interroger la classe. Pour une unité présente, ne consomme que la deuxième valeur renvoyée par UnitClass, sous forme de chaîne de nom de fichier de classe lisible et non vide, sans restriction d'énumération de classe. Les faits requis manquants, en échec, mal formés ou restreints renvoient nil avec un motif.

Arguments

NomTypeCe qu'elle fait
selfRMPlatformAdaptateur de plateforme Rotation Master (implicite avec un appel par deux-points).
unitstringIdentifiant exact géré par la fonction : player, party1..party4 ou raid1..raid40.

Retours

1string | boolean | nilChaîne de nom de fichier de classe observée, false pour une unité connue comme absente, ou nil si indisponible.
2string | nilMotif de validation, de politique ou de disponibilité pour un résultat nil.

Éditions

Les fonctions utilitaires intégrées sont enregistrées sur toutes les éditions. Ce qui diffère, c'est l'API du jeu qu'elles lisent ; quand l'une manque, la fonction utilitaire se rabat sur une alternative ou renvoie nil avec une raison.

  • Indisponible sur cette édition (la raison figure dans l'infobulle)
  • Uniquement tant que les solutions de repli de Blizzard pour les fonctions obsolètes sont actives
API du jeuClassic EraTBC AnniversaryClassic ProgressionForeverRetail
UnitClassClassic EraTBC AnniversaryClassic ProgressionForeverRetail
UnitExistsClassic EraTBC AnniversaryClassic ProgressionForeverRetail
canaccessvalueClassic EraTBC AnniversaryClassic ProgressionForeverRetail

Valeurs secrètes (Retail et Forever)

Sur Retail et Forever, le jeu transmet aux addons des valeurs secrètes. Cette fonction utilitaire vérifie ce qu'elle lit (addon.Platform:CanReadValue) et renvoie nil avec une raison telle que restricted-value au lieu d'une valeur secrète qu'elle ne peut pas comparer. Traitez nil comme indisponible, pas comme false.

Exemple

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

Dépendances

Source

Platform/roster_class.lua, ligne 29. En lecture seule dans le jeu ; Dupliquer crée une copie modifiable.

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

Retour à Référence des fonctions