local AddonName, Private = ... WeakAuras = {} WeakAuras.L = {} WeakAuras.frames = {} WeakAuras.normalWidth = 1.3 WeakAuras.halfWidth = WeakAuras.normalWidth / 2 WeakAuras.doubleWidth = WeakAuras.normalWidth * 2 local versionStringFromToc = GetAddOnMetadata("WeakAuras", "Version") local versionString = "4.1.2" local buildTime = "20240701180000" local isAwesomeEnabled = C_NamePlate and C_NamePlate.GetNamePlateForUnit or false WeakAuras.versionString = versionStringFromToc WeakAuras.buildTime = buildTime WeakAuras.newFeatureString = "|TInterface\\OptionsFrame\\UI-OptionsFrame-NewFeatureIcon:0|t" WeakAuras.BuildInfo = select(4, GetBuildInfo()) function WeakAuras.isAwesomeEnabled() return isAwesomeEnabled end function WeakAuras.IsClassic() return false end function WeakAuras.IsCorrectVersion() return true end WeakAuras.prettyPrint = function(...) print("|cff9900ffWeakAuras:|r ", ...) end -- Force enable WeakAurasCompanion and Archive because some addon managers interfere with it EnableAddOn("WeakAurasCompanion") EnableAddOn("WeakAurasArchive") local libsAreOk = true do local StandAloneLibs = { "Archivist", "LibStub" } local LibStubLibs = { "CallbackHandler-1.0", "AceConfig-3.0", "AceConsole-3.0", "AceGUI-3.0", "AceEvent-3.0", "AceGUISharedMediaWidgets-1.0", "AceTimer-3.0", "AceSerializer-3.0", "AceComm-3.0", "LibSharedMedia-3.0", "LibDataBroker-1.1", "LibCompress", "SpellRange-1.0", "LibCustomGlow-1.0", "LibDBIcon-1.0", "LibGetFrame-1.0", "LibSerialize", } for _, lib in ipairs(StandAloneLibs) do if not lib then libsAreOk = false WeakAuras.prettyPrint("Missing library:", lib) end end if LibStub then for _, lib in ipairs(LibStubLibs) do if not LibStub:GetLibrary(lib, true) then libsAreOk = false WeakAuras.prettyPrint("Missing library:", lib) end end else libsAreOk = false end end function WeakAuras.IsLibsOK() return libsAreOk end if versionString ~= versionStringFromToc and versionStringFromToc ~= "Dev" then WeakAuras.prettyPrint("You need to restart your game client to complete the WeakAuras update!") end if not WeakAuras.IsLibsOK() then WeakAuras.prettyPrint("WeakAuras is missing necessary libraries. Please reinstall a proper package.") end -- These function stubs are defined here to reduce the number of errors that occur if WeakAuras.lua fails to compile function WeakAuras.RegisterRegionType() end function WeakAuras.RegisterRegionOptions() end function Private.StartProfileSystem() end function Private.StartProfileAura() end function Private.StopProfileSystem() end function Private.StopProfileAura() end function Private.StartProfileUID() end function Private.StopProfileUID() end -- If WeakAuras shuts down due to being installed on the wrong target, keep the bindings from erroring function WeakAuras.StartProfile() end function WeakAuras.StopProfile() end function WeakAuras.PrintProfile() end function WeakAuras.CountWagoUpdates() -- XXX this is to work around the Companion app trying to use our stuff! return 0 end function WeakAuras.Mixin(object, ...) for i = 1, select("#", ...) do local mixin = select(i, ...) for k, v in pairs(mixin) do object[k] = v end end return object end