gitlab Tsoukie/classicapi 1.21

17 hours ago

Enum
  • Refactored the Enum structure, expanding the capability of emulated functions that rely on it (e.g., C_Item).
  • Updated values and indexes to strictly match valid 3.3.5 client data (e.g., Enum.ItemClass).
  • Imported and created Enum metadata tables for existing data (e.g., {MinValue = X, NumValues = X, MaxValue = X}).
  • Removed the Enum.ItemClassInfo, Enum.InventoryTypeInfo, and Enum.__InventoryTypeIndex tables.
  • Created Private.EnumInventoryType, a streamlined, merged version of Enum.InventoryTypeInfo and Enum.InventoryTypeIndex for internal use.

C_Item

  • C_Item.GetItemClassInfo and C_Item.GetItemSubClassInfo now return valid, localized data matching the 3.3.5 client.
  • C_Item.GetItemInfoInstant and C_Item.GetItemInfo now return ClassID and SubClassID.

C_AuctionHouse

  • Added C_AuctionHouse.GetAuctionItemSubClasses.

C_CVar

  • Added:
    • C_CVar.GetCVar
    • C_CVar.SetCVar
    • C_CVar.GetCVarBool
    • C_CVar.GetCVarInfo
    • C_CVar.GetCVarDefault

C_Map

  • Refactored cached zone information to expand functionality while reducing resource overhead.
  • Updated C_Map.IsWorldMap to strictly accept numeric Zone IDs instead of strings.
  • Added C_Map.GetBestMapForUnit and C_Map.GetPlayerMapPosition (restricted to the "player" unit).
  • Added C_Map.GetMapInfo.

C_AddOns

  • Fixed GetAddOnEnableState() issues when ambiguous arguments were passed.
  • Added:
    • C_AddOns.IsAddOnLoaded
    • C_AddOns.GetAddOnInfo
    • C_AddOns.GetAddOnEnableState
    • C_AddOns.IsAddonVersionCheckEnabled
    • C_AddOns.LoadAddOn
    • C_AddOns.EnableAddOn
    • C_AddOns.DisableAddOn
    • C_AddOns.GetAddOnMetadata
    • C_AddOns.GetAddOnDependencies
    • C_AddOns.IsAddOnLoadOnDemand
    • C_AddOns.GetNumAddOns



[!important] AddOn Developer Note: Enum Changes
AddOns depending on the legacy ClassicAPI:Enum structure must now retrieve this data using modern Classic/Retail API patterns. For example:

for classID = Enum.ItemClassMeta.MinValue, Enum.ItemClassMeta.MaxValue do
    local className = C_Item.GetItemClassInfo(classID)
    print("Class:", classID, className)

    local subClasses = C_AuctionHouse.GetAuctionItemSubClasses(classID)
	for Index = 1, #subClasses do
	    local subClassID = subClasses[Index]
        local subClassName = C_Item.GetItemSubClassInfo(classID, subClassID)
        print("  ", subClassID, subClassName)
    end
end

Don't miss a new classicapi release

NewReleases is sending notifications on new releases.