diff --git a/Libs/AceAddon-3.0/AceAddon-3.0.lua b/Libs/AceAddon-3.0/AceAddon-3.0.lua index 46fde43f8..0ea93d19b 100644 --- a/Libs/AceAddon-3.0/AceAddon-3.0.lua +++ b/Libs/AceAddon-3.0/AceAddon-3.0.lua @@ -28,7 +28,7 @@ -- end -- @class file -- @name AceAddon-3.0.lua --- @release $Id: AceAddon-3.0.lua 1238 2020-08-28 16:18:42Z nevcairiel $ +-- @release $Id: AceAddon-3.0.lua 1284 2022-09-25 09:15:30Z nevcairiel $ local MAJOR, MINOR = "AceAddon-3.0", 13 local AceAddon, oldminor = LibStub:NewLibrary(MAJOR, MINOR) @@ -49,10 +49,6 @@ local select, pairs, next, type, unpack = select, pairs, next, type, unpack local loadstring, assert, error = loadstring, assert, error local setmetatable, getmetatable, rawset, rawget = setmetatable, getmetatable, rawset, rawget --- Global vars/functions that we don't upvalue since they might get hooked, or upgraded --- List them here for Mikk's FindGlobals script --- GLOBALS: LibStub, IsLoggedIn, geterrorhandler - --[[ xpcall safecall implementation ]] diff --git a/Libs/AceComm-3.0/AceComm-3.0.lua b/Libs/AceComm-3.0/AceComm-3.0.lua index 3fca6923f..28d9b220f 100644 --- a/Libs/AceComm-3.0/AceComm-3.0.lua +++ b/Libs/AceComm-3.0/AceComm-3.0.lua @@ -9,7 +9,7 @@ -- make into AceComm. -- @class file -- @name AceComm-3.0 --- @release $Id: AceComm-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $ +-- @release $Id: AceComm-3.0.lua 1284 2022-09-25 09:15:30Z nevcairiel $ --[[ AceComm-3.0 @@ -35,10 +35,6 @@ local error, assert = error, assert -- WoW APIs local Ambiguate = Ambiguate --- Global vars/functions that we don't upvalue since they might get hooked, or upgraded --- List them here for Mikk's FindGlobals script --- GLOBALS: LibStub, DEFAULT_CHAT_FRAME, geterrorhandler, RegisterAddonMessagePrefix - AceComm.embeds = AceComm.embeds or {} -- for my sanity and yours, let's give the message type bytes some names diff --git a/Libs/AceComm-3.0/ChatThrottleLib.lua b/Libs/AceComm-3.0/ChatThrottleLib.lua index aca682682..195186840 100644 --- a/Libs/AceComm-3.0/ChatThrottleLib.lua +++ b/Libs/AceComm-3.0/ChatThrottleLib.lua @@ -75,7 +75,7 @@ local next = next local strlen = string.len local GetFramerate = GetFramerate local strlower = string.lower -local unpack,type,pairs,wipe = unpack,type,pairs,wipe +local unpack,type,pairs,wipe = unpack,type,pairs,table.wipe local UnitInRaid,UnitInParty = UnitInRaid,UnitInParty diff --git a/Libs/AceLocale-3.0/AceLocale-3.0.lua b/Libs/AceLocale-3.0/AceLocale-3.0.lua index 2ecc0cb8e..e67f82c18 100644 --- a/Libs/AceLocale-3.0/AceLocale-3.0.lua +++ b/Libs/AceLocale-3.0/AceLocale-3.0.lua @@ -1,7 +1,7 @@ --- **AceLocale-3.0** manages localization in addons, allowing for multiple locale to be registered with fallback to the base locale for untranslated strings. -- @class file -- @name AceLocale-3.0 --- @release $Id: AceLocale-3.0.lua 1035 2011-07-09 03:20:13Z kaelten $ +-- @release $Id: AceLocale-3.0.lua 1284 2022-09-25 09:15:30Z nevcairiel $ local MAJOR,MINOR = "AceLocale-3.0", 6 local AceLocale, oldminor = LibStub:NewLibrary(MAJOR, MINOR) @@ -12,10 +12,6 @@ if not AceLocale then return end -- no upgrade needed local assert, tostring, error = assert, tostring, error local getmetatable, setmetatable, rawset, rawget = getmetatable, setmetatable, rawset, rawget --- Global vars/functions that we don't upvalue since they might get hooked, or upgraded --- List them here for Mikk's FindGlobals script --- GLOBALS: GAME_LOCALE, geterrorhandler - local gameLocale = GetLocale() if gameLocale == "enGB" then gameLocale = "enUS" @@ -93,7 +89,7 @@ local writedefaultproxy = setmetatable({}, { function AceLocale:NewLocale(application, locale, isDefault, silent) -- GAME_LOCALE allows translators to test translations of addons without having that wow client installed - local gameLocale = GAME_LOCALE or gameLocale + local activeGameLocale = GAME_LOCALE or gameLocale local app = AceLocale.apps[application] @@ -111,7 +107,7 @@ function AceLocale:NewLocale(application, locale, isDefault, silent) AceLocale.appnames[app] = application end - if locale ~= gameLocale and not isDefault then + if locale ~= activeGameLocale and not isDefault then return -- nop, we don't need these translations end diff --git a/Libs/AceSerializer-3.0/AceSerializer-3.0.lua b/Libs/AceSerializer-3.0/AceSerializer-3.0.lua index c5b88b8dd..74dbe6b1e 100644 --- a/Libs/AceSerializer-3.0/AceSerializer-3.0.lua +++ b/Libs/AceSerializer-3.0/AceSerializer-3.0.lua @@ -10,7 +10,7 @@ -- make into AceSerializer. -- @class file -- @name AceSerializer-3.0 --- @release $Id: AceSerializer-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $ +-- @release $Id: AceSerializer-3.0.lua 1284 2022-09-25 09:15:30Z nevcairiel $ local MAJOR,MINOR = "AceSerializer-3.0", 5 local AceSerializer, oldminor = LibStub:NewLibrary(MAJOR, MINOR) @@ -83,9 +83,9 @@ local function SerializeValue(v, res, nres) elseif t=="table" then -- ^T...^t = table (list of key,value pairs) nres=nres+1 res[nres] = "^T" - for k,v in pairs(v) do - nres = SerializeValue(k, res, nres) - nres = SerializeValue(v, res, nres) + for key,value in pairs(v) do + nres = SerializeValue(key, res, nres) + nres = SerializeValue(value, res, nres) end nres=nres+1 res[nres] = "^t" @@ -219,12 +219,12 @@ local function DeserializeValue(iter,single,ctl,data) if ctl=="^t" then break end -- ignore ^t's data k = DeserializeValue(iter,true,ctl,data) if k==nil then - error("Invalid AceSerializer table format(no table end marker)") + error("Invalid AceSerializer table format (no table end marker)") end ctl,data = iter() v = DeserializeValue(iter,true,ctl,data) if v==nil then - error("Invalid AceSerializer table format(no table end marker)") + error("Invalid AceSerializer table format (no table end marker)") end res[k]=v end diff --git a/Libs/AceTimer-3.0/AceTimer-3.0.lua b/Libs/AceTimer-3.0/AceTimer-3.0.lua index f576fe7ea..c33739863 100644 --- a/Libs/AceTimer-3.0/AceTimer-3.0.lua +++ b/Libs/AceTimer-3.0/AceTimer-3.0.lua @@ -15,7 +15,7 @@ -- make into AceTimer. -- @class file -- @name AceTimer-3.0 --- @release $Id: AceTimer-3.0.lua 1202 2019-05-15 23:11:22Z nevcairiel $ +-- @release $Id: AceTimer-3.0.lua 1284 2022-09-25 09:15:30Z nevcairiel $ local MAJOR, MINOR = "AceTimer-3.0", 17 -- Bump minor on changes local AceTimer, oldminor = LibStub:NewLibrary(MAJOR, MINOR) @@ -61,11 +61,11 @@ local function new(self, loop, func, delay, ...) -- Compensate delay to get a perfect average delay, even if individual times don't match up perfectly -- due to fps differences local time = GetTime() - local delay = timer.delay - (time - timer.ends) + local ndelay = timer.delay - (time - timer.ends) -- Ensure the delay doesn't go below the threshold - if delay < 0.01 then delay = 0.01 end - C_TimerAfter(delay, timer.callback) - timer.ends = time + delay + if ndelay < 0.01 then ndelay = 0.01 end + C_TimerAfter(ndelay, timer.callback) + timer.ends = time + ndelay else activeTimers[timer.handle or timer] = nil end diff --git a/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua b/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua index 3bd4a3726..bd0424181 100644 --- a/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua +++ b/Libs/CallbackHandler-1.0/CallbackHandler-1.0.lua @@ -1,4 +1,4 @@ ---[[ $Id: CallbackHandler-1.0.lua 1186 2018-07-21 14:19:18Z nevcairiel $ ]] +--[[ $Id: CallbackHandler-1.0.lua 1284 2022-09-25 09:15:30Z nevcairiel $ ]] local MAJOR, MINOR = "CallbackHandler-1.0", 7 local CallbackHandler = LibStub:NewLibrary(MAJOR, MINOR) @@ -7,15 +7,10 @@ if not CallbackHandler then return end -- No upgrade needed local meta = {__index = function(tbl, key) tbl[key] = {} return tbl[key] end} -- Lua APIs -local tconcat = table.concat -local assert, error, loadstring = assert, error, loadstring -local setmetatable, rawset, rawget = setmetatable, rawset, rawget +local error = error +local setmetatable, rawget = setmetatable, rawget local next, select, pairs, type, tostring = next, select, pairs, type, tostring --- Global vars/functions that we don't upvalue since they might get hooked, or upgraded --- List them here for Mikk's FindGlobals script --- GLOBALS: geterrorhandler - local xpcall = xpcall local function errorhandler(err) @@ -39,7 +34,7 @@ end -- UnregisterName - name of the callback unregistration API, default "UnregisterCallback" -- UnregisterAllName - name of the API to unregister all callbacks, default "UnregisterAllCallbacks". false == don't publish this API. -function CallbackHandler:New(target, RegisterName, UnregisterName, UnregisterAllName) +function CallbackHandler.New(_self, target, RegisterName, UnregisterName, UnregisterAllName) RegisterName = RegisterName or "RegisterCallback" UnregisterName = UnregisterName or "UnregisterCallback" @@ -67,13 +62,13 @@ function CallbackHandler:New(target, RegisterName, UnregisterName, UnregisterAll if registry.insertQueue and oldrecurse==0 then -- Something in one of our callbacks wanted to register more callbacks; they got queued - for eventname,callbacks in pairs(registry.insertQueue) do - local first = not rawget(events, eventname) or not next(events[eventname]) -- test for empty before. not test for one member after. that one member may have been overwritten. - for self,func in pairs(callbacks) do - events[eventname][self] = func + for event,callbacks in pairs(registry.insertQueue) do + local first = not rawget(events, event) or not next(events[event]) -- test for empty before. not test for one member after. that one member may have been overwritten. + for object,func in pairs(callbacks) do + events[event][object] = func -- fire OnUsed callback? if first and registry.OnUsed then - registry.OnUsed(registry, target, eventname) + registry.OnUsed(registry, target, event) first = nil end end diff --git a/Libs/DF/cooltip.lua b/Libs/DF/cooltip.lua index d6ef7bba9..17e5e070a 100644 --- a/Libs/DF/cooltip.lua +++ b/Libs/DF/cooltip.lua @@ -15,7 +15,7 @@ local max = math.max --api locals local PixelUtil = PixelUtil or DFPixelUtil -local version = 6 +local version = 7 local CONST_MENU_TYPE_MAINMENU = "main" local CONST_MENU_TYPE_SUBMENU = "sub" @@ -64,7 +64,22 @@ function DF:CreateCoolTip() return CONST_MENU_TYPE_MAINMENU end - local languageFontEditBox = function() + gameCooltip.LanguageEditBox = gameCooltip.LanguageEditBox or CreateFrame("editbox") + gameCooltip.LanguageEditBox:SetFontObject("GameFontNormal") + gameCooltip.LanguageEditBox:ClearFocus() + gameCooltip.LanguageEditBox:SetAutoFocus(false) + + function gameCooltip.CheckNeedNewFont(text) + --local file = gameCooltip.LanguageEditBox:GetFont() + --print("1", file, text) + --gameCooltip.LanguageEditBox:SetText("Цены аукциона") + --local file2 = gameCooltip.LanguageEditBox:GetFont() + --print("2", file2) + --gameCooltip.LanguageEditBox:ClearFocus() + + --if (file ~= file2) then + -- gameCooltip:SetOption("TextFont", file2) + --end end --containers @@ -2738,6 +2753,8 @@ function DF:CreateCoolTip() end end + gameCooltip.CheckNeedNewFont(leftText) + local rightTextType = type(rightText) if (rightTextType ~= "string") then if (rightTextType == "number") then @@ -2747,6 +2764,8 @@ function DF:CreateCoolTip() end end + gameCooltip.CheckNeedNewFont(rightText) + if (type(ColorR1) ~= "number") then ColorR2, ColorG2, ColorB2, ColorA2, fontSize, fontFace, fontFlag = ColorG1, ColorB1, ColorA1, ColorR2, ColorG2, ColorB2, ColorA2 if (type(ColorR1) == "boolean" or not ColorR1) then diff --git a/Libs/DF/fw.lua b/Libs/DF/fw.lua index 5083be9bc..48c03bd76 100644 --- a/Libs/DF/fw.lua +++ b/Libs/DF/fw.lua @@ -1,6 +1,6 @@ -local dversion = 384 +local dversion = 385 local major, minor = "DetailsFramework-1.0", dversion local DF, oldminor = LibStub:NewLibrary(major, minor) diff --git a/Libs/DF/iteminfo.lua b/Libs/DF/iteminfo.lua index 0cd4b9c07..bb8f1baaa 100644 --- a/Libs/DF/iteminfo.lua +++ b/Libs/DF/iteminfo.lua @@ -13,7 +13,7 @@ if (detailsFramework.IsDragonflightAndBeyond()) then end function detailsFramework.Items.GetContainerItemInfo(containerIndex, slotIndex) - if (containerAPIVersion == 2) then + if (containerAPIVersion == 2 and C_Container and C_Container.GetContainerItemInfo) then local itemInfo = C_Container.GetContainerItemInfo(containerIndex, slotIndex) return itemInfo.iconFileID, itemInfo.stackCount, itemInfo.isLocked, itemInfo.quality, itemInfo.isReadable, itemInfo.hasLoot, itemInfo.hyperlink, itemInfo.isFiltered, itemInfo.hasNoValue, itemInfo.itemID, itemInfo.isBound else diff --git a/boot.lua b/boot.lua index fed4e3d29..0db855875 100644 --- a/boot.lua +++ b/boot.lua @@ -64,6 +64,14 @@ do local Loc = _G.LibStub("AceLocale-3.0"):GetLocale( "Details" ) + --[=[ + - + - + - this is an empty comment section + - + - + --]=] + local news = { {"v9.2.0.10001.146", "Aug 10th, 2022"}, "New feature: Arena DPS Bar, can be enabled at the Broadcaster Tools section, shows a bar in 'kamehameha' style showing which team is doing more damage in the latest 3 seconds.", diff --git a/classes/container_actors.lua b/classes/container_actors.lua index e6ec7fda0..d110d4408 100644 --- a/classes/container_actors.lua +++ b/classes/container_actors.lua @@ -473,12 +473,12 @@ if (not _detalhes.tabela_vigente) then return end - + pet_tooltip_frame:SetOwner(WorldFrame, "ANCHOR_NONE") - pet_tooltip_frame:SetHyperlink ("unit:" .. serial or "") + pet_tooltip_frame:SetHyperlink ("unit:" .. (serial or "")) Details.tabela_vigente.raid_roster_indexed = Details.tabela_vigente.raid_roster_indexed or {} - + local line1 = _G ["DetailsPetOwnerFinderTextLeft2"] local text1 = line1 and line1:GetText() if (text1 and text1 ~= "") then @@ -502,11 +502,18 @@ else if (text1:find(playerName)) then return find_pet_found_owner (pName, serial, nome, flag, self) + else + local ownerName = (string.match(text1, string.gsub(UNITNAME_TITLE_PET, "%%s", "(%.*)")) or string.match(text1, string.gsub(UNITNAME_TITLE_MINION, "%%s", "(%.*)")) or string.match(text1, string.gsub(UNITNAME_TITLE_GUARDIAN, "%%s", "(%.*)"))) + if (ownerName) then + if (_detalhes.tabela_vigente.raid_roster[ownerName]) then + return find_pet_found_owner (ownerName, serial, nome, flag, self) + end + end end end end end - + local line2 = _G ["DetailsPetOwnerFinderTextLeft3"] local text2 = line2 and line2:GetText() if (text2 and text2 ~= "") then @@ -527,6 +534,13 @@ else if (text2:find(playerName)) then return find_pet_found_owner (pName, serial, nome, flag, self) + else + local ownerName = (string.match(text2, string.gsub(UNITNAME_TITLE_PET, "%%s", "(%.*)")) or string.match(text2, string.gsub(UNITNAME_TITLE_MINION, "%%s", "(%.*)")) or string.match(text2, string.gsub(UNITNAME_TITLE_GUARDIAN, "%%s", "(%.*)"))) + if (ownerName) then + if (_detalhes.tabela_vigente.raid_roster[ownerName]) then + return find_pet_found_owner (ownerName, serial, nome, flag, self) + end + end end end end diff --git a/core/network.lua b/core/network.lua index abcea9162..826177f70 100644 --- a/core/network.lua +++ b/core/network.lua @@ -570,12 +570,10 @@ end function Details:SendPartyData(type, ...) - local isInInstanceGroup = IsInGroup(LE_PARTY_CATEGORY_INSTANCE) - if (isInInstanceGroup) then - Details:SendCommMessage(DETAILS_PREFIX_NETWORK, Details:Serialize(type, UnitName("player"), GetRealmName(), Details.realversion, ...), "INSTANCE_CHAT") - else - Details:SendCommMessage (DETAILS_PREFIX_NETWORK, Details:Serialize(type, UnitName("player"), GetRealmName(), Details.realversion, ...), "PARTY") - end + local prefix = DETAILS_PREFIX_NETWORK + local data = Details:Serialize(type, UnitName("player"), GetRealmName(), Details.realversion, ...) + local channel = IsInGroup(LE_PARTY_CATEGORY_INSTANCE) and "INSTANCE_CHAT" or "PARTY" + Details:SendCommMessage(prefix, data, channel) end function Details:SendRaidOrPartyData(type, ...) diff --git a/core/parser.lua b/core/parser.lua index 91a7551f9..cf47a52f2 100755 --- a/core/parser.lua +++ b/core/parser.lua @@ -8,10 +8,6 @@ local isTBC = DetailsFramework.IsTBCWow() local isWOTLK = DetailsFramework.IsWotLKWow() - Details.UnregisteredTokens = {} - Details.IgnoredDamageEvents = {} - Details.RogueRaceCache = {} - ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- --local pointers @@ -662,14 +658,12 @@ if (who_serial == "") then if (who_flags and bitBand(who_flags, OBJECT_TYPE_PETS) ~= 0) then --� um pet --pets must have a serial - Details.IgnoredDamageEvents[#Details.IgnoredDamageEvents+1] = {"INVALID SERIAL", token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spelltype, amount, overkill, school, resisted, blocked, absorbed, critical, glacing, crushing, isoffhand, isreflected} return end end if (not alvo_name) then --no target name, just quit - Details.IgnoredDamageEvents[#Details.IgnoredDamageEvents+1] = {"INVALID TARGET", token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spelltype, amount, overkill, school, resisted, blocked, absorbed, critical, glacing, crushing, isoffhand, isreflected} return elseif (not who_name) then @@ -681,7 +675,6 @@ --check if the spell isn't in the backlist if (damage_spells_to_ignore[spellid]) then - Details.IgnoredDamageEvents[#Details.IgnoredDamageEvents+1] = {"SPELL IGNORED", token, time, who_serial, who_name, who_flags, alvo_serial, alvo_name, alvo_flags, alvo_flags2, spellid, spellname, spelltype, amount, overkill, school, resisted, blocked, absorbed, critical, glacing, crushing, isoffhand, isreflected} return end @@ -4853,6 +4846,8 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 end function _detalhes:CallWipe (from_slash) + Details:Msg("Wipe has been called by your raid leader.") + if (_detalhes.wipe_called) then if (from_slash) then return _detalhes:Msg(Loc ["STRING_WIPE_ERROR1"]) @@ -5077,6 +5072,12 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 _detalhes:Msg("(debug) |cFFFFFF00ENCOUNTER_START|r event triggered.") end + C_Timer.After(1, function() + if (C_CVar.GetCVar("AdvancedCombatLogging") == "1") then + Details:Msg("you have Advanced Combat Logging enabled, your numbers might be different of other players (bug in the game).") + end + end) + _detalhes.latest_ENCOUNTER_END = _detalhes.latest_ENCOUNTER_END or 0 if (_detalhes.latest_ENCOUNTER_END + 10 > GetTime()) then return @@ -5949,9 +5950,6 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 local func = token_list[token] if (func) then return func(nil, token, time, who_serial, who_name, who_flags, target_serial, target_name, target_flags, target_flags2, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12) - else - Details.UnregisteredTokens[token] = {time, token, hidding, who_serial, who_name, who_flags, who_flags2, target_serial, target_name, target_flags, target_flags2, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12} - return end end @@ -6095,12 +6093,6 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 if (auto_regen_power_specs[_detalhes.cached_specs[UnitGUID("raid" .. i)]]) then auto_regen_cache[name] = auto_regen_power_specs[_detalhes.cached_specs[UnitGUID("raid" .. i)]] end - - local _, class = UnitClass("raid"..i) - if (class == "ROGUE") then - local _, race = UnitRace("raid"..i) - Details.RogueRaceCache[name] = race - end end elseif (IsInGroup()) then @@ -6469,4 +6461,4 @@ local SPELL_POWER_PAIN = SPELL_POWER_PAIN or (PowerEnum and PowerEnum.Pain) or 1 end end end - end \ No newline at end of file + end diff --git a/functions/profiles.lua b/functions/profiles.lua index f9c0c4020..6acb43e66 100644 --- a/functions/profiles.lua +++ b/functions/profiles.lua @@ -1137,6 +1137,11 @@ local default_profile = { line_height = 17, }, + --new window + all_in_one_windows = { + + }, + } _detalhes.default_profile = default_profile