Appel
addon.Platform:GetItemInfoInstant(item)
Disponible directement via addon ; aucune dépendance n'est nécessaire.
Ce qu'elle fait
Lit les métadonnées natives normalisées de classification d'objet. L'enregistrement contient itemID, classID et subClassID canoniques, ainsi que equipLoc, le jeton non localisé INVTYPE_* de l'emplacement d'équipement, lorsqu'il est lisible et non vide ; il n'exige pas que le texte d'affichage de l'objet soit chargé. Les métadonnées manquantes, en échec, mal formées ou restreintes renvoient nil avec un motif.
Arguments
| Nom | Type | Ce qu'elle fait |
|---|---|---|
self | RMPlatform | Adaptateur de plateforme Rotation Master (implicite avec un appel par deux-points). |
item | number | string | ID d'objet positif, ou nom/lien d'objet reconnu nativement, à classer. |
Retours
| 1 | table | nil | Enregistrement canonique et lisible de classification d'objet (itemID, classID, subClassID et equipLoc facultatif), ou nil si indisponible. |
|---|---|---|
| 2 | string | nil | Motif de validation 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 jeu | |||||
|---|---|---|---|---|---|
C_Item.GetItemInfoInstant | |||||
GetItemInfoInstant |
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
local item = addon.Platform:GetItemInfoInstant(5512) -- Healthstone
if not item then return nil end
return item.classID == 0 -- consumableDépendances
finite→Platform.items.finiteidentifier→Platform.items.identifier
Source
Platform/items.lua, ligne 132. En lecture seule dans le jeu ; Dupliquer crée une copie modifiable.
Platform.items.GetItemInfoInstant(self, item)
local valid,reason=identifier(item)
if not valid then return nil,reason end
local fn=C_Item and C_Item.GetItemInfoInstant
if type(fn)~='function' then fn=GetItemInfoInstant end
if type(fn)~='function' then return nil,'missing-api' end
local ok,tuple=pcall(function() return {fn(item)} end)
if not ok then return nil,'api-error' end
local id,class,subclass=tuple[1],tuple[6],tuple[7]
if not self:CanReadValue(id) or not self:CanReadValue(class) or not self:CanReadValue(subclass) then return nil,'restricted-value' end
if id==nil then return nil,'item-data-unavailable' end
if not finite(id) or id<=0 or id%1~=0 or not finite(class) or class%1~=0
or not finite(subclass) or subclass%1~=0 or type(item)=='number' and id~=item then return nil,'invalid-api-result' end
-- The equip location is a non-localized INVTYPE_* token (two-hand,
-- shield, ...). An empty or unreadable token is simply absent.
local equipLoc=tuple[4]
if not self:CanReadValue(equipLoc) or type(equipLoc)~='string' or equipLoc=='' then equipLoc=nil end
return {itemID=id,classID=class,subClassID=subclass,equipLoc=equipLoc}




