Patch 9.2.5/API changes

From Warcraft Wiki
Jump to navigation Jump to search

Summary

  • Significant modifications were made to the UnitPopup menu system. See UnitPopup Changes for more information.
  • Added various APIs relating to cross-faction player co-operation.
  • Added Region:GetSourceLocation() which returns the script name and line where a Region was created.
  • Added a new reusable system for dropdowns that configure list filters.
  • Added a new player name autocompletion flag - AUTO_COMPLETE_RECENT_PLAYER.
  • The GetPlayerAuraBySpellID() API no longer returns information about hidden auras.
  • (9.2.0) Added isFullUpdate and updatedAuras parameters to UNIT_AURA.[1]

Enums

  • Changed the casing of various LFG enumerations; usages of "Lfg" have been renamed to the fully-uppercase "LFG". The old names are deprecated.
  • Added new enums for calendar events and invites. The old global constants have been deprecated.
  • Added a new enum for LFG filter flags. The old global constants are deprecated.

Resources

UnitPopup Changes

The UnitPopup system has been reworked to cut down on the differences between the Retail and Classic clients. This is a breaking change and may require alterations to addons that were previously modifying global tables to add, remove, or modify buttons on right-click menus for units.

To create a new button to be displayed on unit menus create a mixin that derives from UnitPopupButtonBaseMixin.

local CustomMenuButtonMixin = CreateFromMixins(UnitPopupButtonBaseMixin)

function CustomMenuButtonMixin:GetText() return "My Button" end
function CustomMenuButtonMixin:OnClick() print("Clicked!") end

To then add this button to a menu pre-hook the appropriate GetMenuButtons() method on each menu table that you want to modify. This can also be used to remove or re-order existing buttons within the same menu.

-- This example will modify the "Target" unit menu and add the custom button
-- from the example above as the first button in its list.

local GetTargetMenuButtons = UnitPopupMenuTarget.GetMenuButtons

function UnitPopupMenuTarget:GetMenuButtons()
    local buttons = GetTargetMenuButtons(self)
    table.insert(buttons, 1, CustomMenuButtonMixin)
    return buttons
end

The list of all unit menu tables can be found split across two files; UnitPopupSharedMenus.lua for menus shared between all client flavors, and UnitPopupMenus.lua for per-client customizations.

Global API

9.2.0 (42521) → 9.2.5 (44730) Jul 18 2022
Added (44) Removed (16)
C_AuctionHouse.GetBids
C_AuctionHouse.GetOwnedAuctions
C_AuctionHouse.RequestFavorites
C_CharacterServices.AssignPFCDistribution
C_Club.DoesCommunityHaveMembersOfTheOppositeFaction
C_ClubFinder.SendChatWhisper
C_FriendList.IsOnIgnoredList
C_GamePad.AddSDLMapping
C_GamePad.GetPowerLevel
C_HeirloomInfo.AreAllCollectionFiltersChecked
C_HeirloomInfo.AreAllSourceFiltersChecked
C_HeirloomInfo.IsHeirloomSourceValid
C_HeirloomInfo.IsUsingDefaultFilters
C_HeirloomInfo.SetAllCollectionFilters
C_HeirloomInfo.SetAllSourceFilters
C_HeirloomInfo.SetDefaultFilters
C_Item.GetLimitedCurrencyItemInfo
C_ModifiedInstance.GetModifiedInstanceInfoFromMapID
C_MountJournal.IsUsingDefaultFilters
C_MountJournal.SetDefaultFilters
C_PartyInfo.CanFormCrossFactionParties
C_PartyInfo.IsCrossFactionParty
C_PetJournal.IsUsingDefaultFilters
C_PetJournal.SetDefaultFilters
C_PlayerInfo.IsPlayerInGuildFromGUID
C_ReportSystem.GetMajorCategoriesForReportType
C_ReportSystem.GetMajorCategoryString
C_ReportSystem.GetMinorCategoriesForReportTypeAndMajorCategory
C_ReportSystem.GetMinorCategoryString
C_ReportSystem.SendReport
C_ToyBoxInfo.IsToySourceValid
C_ToyBoxInfo.IsUsingDefaultFilters
C_ToyBoxInfo.SetDefaultFilters
C_TransmogCollection.AreAllCollectionTypeFiltersChecked
C_TransmogCollection.AreAllSourceTypeFiltersChecked
C_TransmogCollection.GetCategoryForItem
C_TransmogCollection.IsUsingDefaultFilters
C_TransmogCollection.SetAllCollectionTypeFilters
C_TransmogCollection.SetDefaultFilters
C_TransmogSets.IsUsingDefaultBaseSetsFilters
C_TransmogSets.SetDefaultBaseSetsFilters
C_WeeklyRewards.OnUIInteract
C_AuctionHouse.ConfirmPostCommodity
C_AuctionHouse.ConfirmPostItem

Changes

C_AuctionHouse.RequestOwnedAuctionBidderInfo
  # ret bidderName, Nilable: true -> false
C_Club.CreateClub
  + arg isCrossFaction
C_Club.CreateTicket
  + arg isCrossFaction
C_Club.EditClub
  + arg crossFaction
C_ClubFinder.PostClub
  + arg crossFaction
C_LFGList.DoesEntryTitleMatchPrebuiltTitle
  # arg playstyle, Type: Enum.LfgEntryPlaystyle -> Enum.LFGEntryPlaystyle
C_LFGList.GetPlaystyleString
  # arg playstyle, Type: Enum.LfgEntryPlaystyle -> Enum.LFGEntryPlaystyle
C_LFGList.Search
  + arg searchCrossFactionListings
C_LFGList.SetEntryTitle
  # arg playstyle, Type: Enum.LfgEntryPlaystyle -> Enum.LFGEntryPlaystyle
C_TransmogCollection.GetAppearanceSources
  + arg transmogLocation
C_TransmogCollection.GetCategoryAppearances
  + arg transmogLocation

Structures

AuctionHouseItemClassFilter (C_AuctionHouse.SendBrowseQuery)
  # inventoryType, Type: number -> Enum.InventoryType
CalendarDayEvent
  # inviteStatus, Type: number -> Enum.CalendarStatus
  # inviteType, Type: number -> Enum.CalendarInviteType
CalendarEventInfo (C_Calendar.GetEventInfo)
  # repeatOption, Type: number -> Enum.CalendarEventRepeatOptions
  # inviteStatus, Type: number -> Enum.CalendarStatus
  # inviteType, Type: number -> Enum.CalendarInviteType
CalendarEventInviteInfo (C_Calendar.EventGetInvite)
  # inviteStatus, Type: number -> Enum.CalendarStatus
  # type, Type: number -> Enum.CalendarInviteType
CalendarGuildEventInfo (C_Calendar.GetGuildEventInfo)
  # inviteStatus, Type: number -> Enum.CalendarStatus
ClubFinderApplicantInfo
  + faction
ClubInfo
  + crossFaction
ClubMemberInfo
  + faction
ClubSettingsInfo
  + crossFaction
GroupFinderActivityInfo (C_LFGList.GetActivityInfoTable, C_LFGList.GetPlaystyleString)
  # displayType, Type: Enum.LfgListDisplayType -> Enum.LFGListDisplayType
  + allowCrossFaction
LfgCategoryData (C_LFGList.GetLfgCategoryInfo)
  + allowCrossFaction
LfgEntryData (C_LFGList.GetActiveEntryInfo)
  # playstyle, Type: Enum.LfgEntryPlaystyle -> Enum.LFGEntryPlaystyle
  + isCrossFactionListing
LfgSearchResultData (C_LFGList.GetSearchResultInfo)
  # playstyle, Type: Enum.LfgEntryPlaystyle -> Enum.LFGEntryPlaystyle
  + crossFactionListing
  + leaderFactionGroup
RecruitingClubInfo
  + isCrossFaction
UIWidgetSpellInfo (C_UIWidgetManager.GetSpellDisplayVisualizationInfo)
  + textFontType
  + textSizeType
  + hAlignType

Widgets

Added (1) Removed (0)

Events

Added (7) Removed (2)

CVars

Added (3) Removed (0)
cameraFovDefault: 90, Scope: Account
Default camera field of view
enableSourceLocationLookupDefault: 0
Allows addon file name lookup for debugging help
GamePadEmulateTapWindowMsDefault: 350
GamePad buttons emulating Ctrl/Alt/Shift will be 'tapped' if released withing this time in MS

Enums

+ Enum.CalendarTexturesType
+ Enum.ClientPlatformType
+ Enum.ClientSceneType
+ Enum.ItemCreationContext
+ Enum.ItemModification
+ Enum.LFGListFilter
+ Enum.PetBattleQueueStatus
+ Enum.PvPFaction
+ Enum.ReportMajorCategory
+ Enum.ReportMinorCategory
+ Enum.ReportType
- Enum.LfgEntryPlaystyle
+ Enum.LFGEntryPlaystyle
- Enum.LfgListDisplayType
+ Enum.LFGListDisplayType
Enum.AuctionHouseFilter
  + None
Enum.BattlePetNpcTeamFlag
  + NoPlayerXP
  - NoPlayerXp
Enum.BrawlType
  + LFG
  - Lfg
  + SoloShuffle
Enum.CalendarCommandType
  # CalendarCommandCreate -> Create, etc
Enum.CalendarErrorType
  # CalendarErrorSuccess -> Success, etc
Enum.CalendarEventBits
  # CalendarEventBitPlayer -> Player, etc
Enum.CalendarEventRepeatOptions
  # CalendarRepeatNever -> Never, etc
Enum.CalendarGetEventType
  - DefaultCalendarGetEventType
Enum.CalendarInviteBits
  # CalendarInviteBitPendingInvite -> PendingInvite, etc
Enum.CalendarInviteSortType
  # CalendarInviteSortName -> Name, etc
Enum.CalendarModeratorStatus
  # CalendarModeratorNone -> None, etc
Enum.ClubErrorType
  + ErrorClubDoesntAllowCrossFaction
  + ErrorClubEditHasCrossFactionMembers
Enum.CurrencyFlagsB
  + CurrencyBShowQuestXPGainInTooltip
  - CurrencyBShowQuestXpGainInTooltip
Enum.CurrencySource
  + LFGReward
  - LfgReward
Enum.QuestSessionResult
  + RestrictedCrossFaction
Enum.UICursorType
  - CommunitiesStream