from retail
This commit is contained in:
@@ -148,7 +148,7 @@ local blockedFunctions = {
|
||||
GuildUninvite = true,
|
||||
securecall = true,
|
||||
DeleteCursorItem = true,
|
||||
ChatEdit_SendText = true
|
||||
ChatEdit_SendText = true,
|
||||
}
|
||||
|
||||
local blockedTables = {
|
||||
@@ -263,7 +263,6 @@ end
|
||||
|
||||
function Private.ActivateAuraEnvironment(id, cloneId, state, states, onlyConfig)
|
||||
local data = id and WeakAuras.GetData(id)
|
||||
local region = id and Private.EnsureRegion(id, cloneId)
|
||||
if not data then
|
||||
-- Pop the last aura_env from the stack, and update current_aura_env appropriately.
|
||||
tremove(aura_env_stack)
|
||||
@@ -276,6 +275,7 @@ function Private.ActivateAuraEnvironment(id, cloneId, state, states, onlyConfig)
|
||||
else
|
||||
-- Existing config is initialized to a high enough value
|
||||
if environment_initialized[id] == 2 or (onlyConfig and environment_initialized[id] == 1) then
|
||||
local region = WeakAuras.GetRegion(id, cloneId)
|
||||
-- Point the current environment to the correct table
|
||||
current_uid = data.uid
|
||||
current_aura_env = aura_environments[id]
|
||||
@@ -296,7 +296,6 @@ function Private.ActivateAuraEnvironment(id, cloneId, state, states, onlyConfig)
|
||||
current_aura_env.cloneId = cloneId
|
||||
current_aura_env.state = state
|
||||
current_aura_env.states = states
|
||||
current_aura_env.region = region
|
||||
tinsert(aura_env_stack, {current_aura_env, data.uid})
|
||||
|
||||
if not data.controlledChildren then
|
||||
@@ -304,6 +303,7 @@ function Private.ActivateAuraEnvironment(id, cloneId, state, states, onlyConfig)
|
||||
end
|
||||
else
|
||||
-- Either this aura environment has not yet been initialized, or it was reset via an edit in WeakaurasOptions
|
||||
local region = id and Private.EnsureRegion(id, cloneId)
|
||||
environment_initialized[id] = 2
|
||||
aura_environments[id] = aura_environments[id] or {}
|
||||
getDataCallCounts[id] = getDataCallCounts[id] or 0
|
||||
|
||||
@@ -251,11 +251,11 @@ local function UpdateToolTipDataInMatchData(matchData, time)
|
||||
local changed = false
|
||||
|
||||
if matchData.unit and matchData.index and matchData.filter then
|
||||
local tooltip, _, tooltip1, tooltip2, tooltip3 = WeakAuras.GetAuraTooltipInfo(matchData.unit, matchData.index, matchData.filter)
|
||||
local tooltip, _, tooltip1, tooltip2, tooltip3, tooltip4 = WeakAuras.GetAuraTooltipInfo(matchData.unit, matchData.index, matchData.filter)
|
||||
|
||||
changed = matchData.tooltip ~= tooltip or matchData.tooltip1 ~= tooltip1
|
||||
or matchData.tooltip2 ~= tooltip2 or matchData.tooltip3 ~= tooltip3
|
||||
matchData.tooltip, matchData.tooltip1, matchData.tooltip2, matchData.tooltip3 = tooltip, tooltip1, tooltip2, tooltip3
|
||||
or matchData.tooltip2 ~= tooltip2 or matchData.tooltip3 ~= tooltip3 or matchData.tooltip4 ~= tooltip4
|
||||
matchData.tooltip, matchData.tooltip1, matchData.tooltip2, matchData.tooltip3, matchData.tooltip4 = tooltip, tooltip1, tooltip2, tooltip3, tooltip4
|
||||
end
|
||||
|
||||
matchData.tooltipUpdated = time
|
||||
@@ -491,6 +491,7 @@ local function UpdateStateWithMatch(time, bestMatch, triggerStates, cloneId, mat
|
||||
tooltip1 = bestMatch.tooltip1,
|
||||
tooltip2 = bestMatch.tooltip2,
|
||||
tooltip3 = bestMatch.tooltip3,
|
||||
tooltip4 = bestMatch.tooltip4,
|
||||
affected = affected,
|
||||
unaffected = unaffected,
|
||||
totalStacks = totalStacks,
|
||||
@@ -626,6 +627,11 @@ local function UpdateStateWithMatch(time, bestMatch, triggerStates, cloneId, mat
|
||||
changed = true
|
||||
end
|
||||
|
||||
if state.tooltip4 ~= bestMatch.tooltip4 then
|
||||
state.tooltip4 = bestMatch.tooltip4
|
||||
changed = true
|
||||
end
|
||||
|
||||
if state.matchCount ~= matchCount then
|
||||
state.matchCount = matchCount
|
||||
changed = true
|
||||
@@ -790,8 +796,8 @@ local function UpdateStateWithNoMatch(time, triggerStates, triggerInfo, cloneId,
|
||||
changed = true
|
||||
end
|
||||
|
||||
if state.tooltip or state.tooltip1 or state.tooltip2 or state.tooltip3 then
|
||||
state.tooltip, state.tooltip1, state.tooltip2, state.tooltip3 = nil, nil, nil, nil
|
||||
if state.tooltip or state.tooltip1 or state.tooltip2 or state.tooltip3 or state.tooltip4 then
|
||||
state.tooltip, state.tooltip1, state.tooltip2, state.tooltip3, state.tooltip4 = nil, nil, nil, nil, nil
|
||||
changed = true
|
||||
end
|
||||
|
||||
@@ -1864,6 +1870,8 @@ local function UnloadAura(scanFuncName, id)
|
||||
if triggerInfo.id == id or not id then
|
||||
if triggerInfo.nextScheduledCheckHandle then
|
||||
timer:CancelTimer(triggerInfo.nextScheduledCheckHandle)
|
||||
triggerInfo.nextScheduledCheck = nil
|
||||
triggerInfo.nextScheduledCheckHandle = nil
|
||||
end
|
||||
nameData[triggerInfo] = nil
|
||||
end
|
||||
@@ -1890,6 +1898,8 @@ local function UnloadGeneral(scanFuncGeneral, id)
|
||||
if triggerInfo.id == id or not id then
|
||||
if triggerInfo.nextScheduledCheckHandle then
|
||||
timer:CancelTimer(triggerInfo.nextScheduledCheckHandle)
|
||||
triggerInfo.nextScheduledCheck = nil
|
||||
triggerInfo.nextScheduledCheckHandle = nil
|
||||
end
|
||||
debuffData[triggerInfo] = nil
|
||||
end
|
||||
@@ -2619,6 +2629,7 @@ function BuffTrigger.GetAdditionalProperties(data, triggernum)
|
||||
ret = ret .. "|cFFFF0000%".. triggernum .. ".tooltip1|r - " .. L["First Value of Tooltip Text"] .. "\n"
|
||||
ret = ret .. "|cFFFF0000%".. triggernum .. ".tooltip2|r - " .. L["Second Value of Tooltip Text"] .. "\n"
|
||||
ret = ret .. "|cFFFF0000%".. triggernum .. ".tooltip3|r - " .. L["Third Value of Tooltip Text"] .. "\n"
|
||||
ret = ret .. "|cFFFF0000%".. triggernum .. ".tooltip4|r - " .. L["Fourth Value of Tooltip Text"] .. "\n"
|
||||
end
|
||||
|
||||
if trigger.unit ~= "multi" and trigger.fetchRaidMark then
|
||||
@@ -2726,6 +2737,10 @@ function BuffTrigger.GetTriggerConditions(data, triggernum)
|
||||
display = L["Tooltip Value 3"],
|
||||
type = "number"
|
||||
}
|
||||
result["tooltip4"] = {
|
||||
display = L["Tooltip Value 4"],
|
||||
type = "number"
|
||||
}
|
||||
end
|
||||
|
||||
if trigger.unit ~= "multi" then
|
||||
@@ -3362,6 +3377,11 @@ function BuffTrigger.GetTriggerDescription(data, triggernum, namestable)
|
||||
local trigger = data.triggers[triggernum].trigger
|
||||
if trigger.useName and trigger.auranames then
|
||||
for index, name in pairs(trigger.auranames) do
|
||||
if index > 10 then
|
||||
tinsert(namestable, {" ", "[...]"})
|
||||
break
|
||||
end
|
||||
|
||||
local left = " "
|
||||
if(index == 1) then
|
||||
if(#trigger.auranames > 0) then
|
||||
@@ -3386,6 +3406,11 @@ function BuffTrigger.GetTriggerDescription(data, triggernum, namestable)
|
||||
|
||||
if trigger.useExactSpellId and trigger.auraspellids then
|
||||
for index, spellId in pairs(trigger.auraspellids) do
|
||||
if index > 10 then
|
||||
tinsert(namestable, {" ", "[...]"})
|
||||
break
|
||||
end
|
||||
|
||||
local left = " "
|
||||
if index == 1 then
|
||||
if #trigger.auraspellids > 0 then
|
||||
|
||||
@@ -3136,10 +3136,8 @@ do
|
||||
end
|
||||
end
|
||||
WeakAuras.ScanEvents("DBM_TimerUpdate", id)
|
||||
elseif event == "DBM_SetStage" then
|
||||
local mod, modId, stage = ...
|
||||
currentStage = stage
|
||||
WeakAuras.ScanEvents("DBM_SetStage", ...)
|
||||
elseif event == "DBM_SetStage" or event == "DBM_Pull" or event == "DBM_Wipe" or event == "DBM_Kill" then
|
||||
WeakAuras.ScanEvents("DBM_SetStage")
|
||||
else -- DBM_Announce
|
||||
WeakAuras.ScanEvents(event, ...)
|
||||
end
|
||||
@@ -3185,7 +3183,7 @@ do
|
||||
end
|
||||
|
||||
function WeakAuras.GetDBMStage()
|
||||
return currentStage
|
||||
return DBM:GetStage()
|
||||
end
|
||||
|
||||
function WeakAuras.GetDBMTimerById(id)
|
||||
@@ -3349,6 +3347,18 @@ do
|
||||
if BigWigsLoader then
|
||||
BigWigsLoader.RegisterMessage(WeakAuras, event, bigWigsEventCallback)
|
||||
registeredBigWigsEvents[event] = true
|
||||
if event == "BigWigs_SetStage" then
|
||||
-- on init of BigWigs_SetStage callback, we want to fetch currentStage in case we are already in an encounter when this is run
|
||||
if BigWigs and BigWigs.IterateBossModules then
|
||||
local stage = 0
|
||||
for _, module in BigWigs:IterateBossModules() do
|
||||
if module:IsEngaged() then
|
||||
stage = math.max(stage, module:GetStage() or 1)
|
||||
end
|
||||
end
|
||||
currentStage = stage
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -3868,9 +3868,12 @@ Private.event_prototypes = {
|
||||
internal_events = {
|
||||
"DBM_SetStage"
|
||||
},
|
||||
force_events = "DBM_SetStage",
|
||||
name = L["DBM Stage"],
|
||||
init = function(trigger)
|
||||
WeakAuras.RegisterDBMCallback("DBM_SetStage");
|
||||
WeakAuras.RegisterDBMCallback("DBM_SetStage")
|
||||
WeakAuras.RegisterDBMCallback("DBM_Pull")
|
||||
WeakAuras.RegisterDBMCallback("DBM_Kill")
|
||||
return ""
|
||||
end,
|
||||
args = {
|
||||
@@ -4150,7 +4153,8 @@ Private.event_prototypes = {
|
||||
{
|
||||
name = "spellId",
|
||||
init = "arg",
|
||||
display = L["Spell Id"],
|
||||
display = L["Key"],
|
||||
desc = L["The 'Key' value can be found in the BigWigs options of a specific spell"],
|
||||
type = "longstring"
|
||||
},
|
||||
{
|
||||
@@ -4306,7 +4310,7 @@ Private.event_prototypes = {
|
||||
trigger.use_cloneId and "true" or "false",
|
||||
trigger.use_extend and tonumber(trigger.extend or 0) or 0,
|
||||
trigger.use_remaining and "true" or "false",
|
||||
trigger.remaining or 0,
|
||||
type(trigger.remaining) == "number" and trigger.remaining or 0,
|
||||
trigger.use_emphasized == nil and "nil" or trigger.use_emphasized and "true" or "false",
|
||||
trigger.use_cast == nil and "nil" or trigger.use_cast and "true" or "false",
|
||||
trigger.use_isCooldown == nil and "nil" or trigger.use_isCooldown and "true" or "false",
|
||||
@@ -4317,7 +4321,8 @@ Private.event_prototypes = {
|
||||
args = {
|
||||
{
|
||||
name = "spellId",
|
||||
display = L["Spell Id"],
|
||||
display = L["Key"],
|
||||
desc = L["The 'Key' value can be found in the BigWigs options of a specific spell"],
|
||||
type = "string",
|
||||
conditionType = "string",
|
||||
},
|
||||
@@ -6420,7 +6425,7 @@ Private.event_prototypes = {
|
||||
type = "toggle",
|
||||
test = "true",
|
||||
enable = function(trigger)
|
||||
return trigger.unit == "player"
|
||||
return trigger.unit == "player" and not trigger.use_inverse
|
||||
end,
|
||||
reloadOptions = true
|
||||
},
|
||||
|
||||
@@ -160,6 +160,16 @@ local function SoundRepeatStop(self)
|
||||
Private.StopProfileSystem("sound");
|
||||
end
|
||||
|
||||
--[[
|
||||
local function SoundStop(self)
|
||||
Private.StartProfileSystem("sound");
|
||||
if (self.soundHandle) then
|
||||
StopSound(self.soundHandle);
|
||||
end
|
||||
Private.StopProfileSystem("sound");
|
||||
end
|
||||
]]
|
||||
|
||||
local function SoundPlayHelper(self)
|
||||
Private.StartProfileSystem("sound");
|
||||
local options = self.soundOptions;
|
||||
@@ -174,24 +184,52 @@ local function SoundPlayHelper(self)
|
||||
end
|
||||
|
||||
if (options.sound == " custom") then
|
||||
if (options.sound_path) then
|
||||
pcall(PlaySoundFile, options.sound_path, options.sound_channel or "Master");
|
||||
end
|
||||
local ok, _, handle = pcall(PlaySoundFile, options.sound_path, options.sound_channel or "Master")
|
||||
--if ok then
|
||||
--self.soundHandle = handle
|
||||
--end
|
||||
elseif (options.sound == " KitID") then
|
||||
if (options.sound_kit_id) then
|
||||
pcall(PlaySound, options.sound_kit_id, options.sound_channel or "Master");
|
||||
end
|
||||
local ok, _, handle = pcall(PlaySound, options.sound_kit_id, options.sound_channel or "Master")
|
||||
--if ok then
|
||||
--self.soundHandle = handle
|
||||
--end
|
||||
else
|
||||
pcall(PlaySoundFile, options.sound, options.sound_channel or "Master");
|
||||
local ok, _, handle = pcall(PlaySoundFile, options.sound, options.sound_channel or "Master")
|
||||
--if ok then
|
||||
--self.soundHandle = handle
|
||||
--end
|
||||
end
|
||||
Private.StopProfileSystem("sound");
|
||||
end
|
||||
|
||||
local function hasSound(options)
|
||||
if (options.sound == " custom") then
|
||||
if (options.sound_path and options.sound_path ~= "") then
|
||||
return true
|
||||
end
|
||||
elseif (options.sound == " KitID") then
|
||||
if (options.sound_kit_id and options.sound_kit_id ~= "") then
|
||||
return true
|
||||
end
|
||||
else
|
||||
if options.sound and options.sound ~= "" then
|
||||
return true
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
local function SoundPlay(self, options)
|
||||
if (not options or WeakAuras.IsOptionsOpen()) then
|
||||
return
|
||||
end
|
||||
Private.StartProfileSystem("sound");
|
||||
if not hasSound(options) then
|
||||
Private.StopProfileSystem("sound")
|
||||
return
|
||||
end
|
||||
|
||||
--self:SoundStop();
|
||||
self:SoundRepeatStop();
|
||||
|
||||
self.soundOptions = options;
|
||||
|
||||
@@ -1392,8 +1392,8 @@ local function scanForLoadsImpl(toCheck, event, arg1, ...)
|
||||
local inCombat = UnitAffectingCombat("player") -- or UnitAffectingCombat("pet");
|
||||
local alive = not UnitIsDeadOrGhost('player')
|
||||
local pvp = UnitIsPVPFreeForAll("player") or UnitIsPVP("player")
|
||||
local vehicle = UnitInVehicle("player") or UnitOnTaxi("player")
|
||||
local vehicleUi = UnitHasVehicleUI("player")
|
||||
local vehicle = UnitInVehicle("player") or UnitOnTaxi("player") or false
|
||||
local vehicleUi = UnitHasVehicleUI("player") or false
|
||||
|
||||
local raidMemberType = 0
|
||||
if UnitIsPartyLeader("player") then
|
||||
@@ -2691,7 +2691,7 @@ local function pAdd(data, simpleChange)
|
||||
end
|
||||
end
|
||||
|
||||
-- If the aura has a onHide animation we need to cancel it to ensure it's truely hidden now
|
||||
-- If the aura has a onHide animation we need to cancel it to ensure it's truly hidden now
|
||||
if Private.regions[id] then
|
||||
Private.CancelAnimation(Private.regions[id].region, true, true, true, true, true, true)
|
||||
end
|
||||
@@ -5012,11 +5012,11 @@ local function GetAnchorFrame(data, region, parent)
|
||||
if unit then
|
||||
local frame = unit and WeakAuras.GetNamePlateForUnit(unit)
|
||||
if frame then return frame end
|
||||
if WeakAuras.IsOptionsOpen() then
|
||||
Private.ensurePRDFrame()
|
||||
personalRessourceDisplayFrame:anchorFrame(id, anchorFrameType)
|
||||
return personalRessourceDisplayFrame
|
||||
end
|
||||
end
|
||||
if WeakAuras.IsOptionsOpen() then
|
||||
Private.ensurePRDFrame()
|
||||
personalRessourceDisplayFrame:anchorFrame(id, anchorFrameType)
|
||||
return personalRessourceDisplayFrame
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -5,7 +5,7 @@ local L = WeakAuras.L
|
||||
|
||||
local pairs, next, type, unpack = pairs, next, type, unpack
|
||||
|
||||
local Type, Version = "WeakAurasPendingUpdateButton", 3
|
||||
local Type, Version = "WeakAurasPendingUpdateButton", 5
|
||||
local AceGUI = LibStub and LibStub("AceGUI-3.0", true)
|
||||
|
||||
if not AceGUI or (AceGUI:GetWidgetVersion(Type) or 0) >= Version then
|
||||
@@ -100,7 +100,7 @@ local methods = {
|
||||
local auraData = WeakAuras.GetData(auraId)
|
||||
if auraData then
|
||||
local success, error = WeakAuras.Import(self.companionData.encoded, auraData)
|
||||
if not success then
|
||||
if not success and error ~= nil then
|
||||
WeakAuras.prettyPrint(error)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -587,7 +587,7 @@ local function GetBuffTriggerOptions(data, triggernum)
|
||||
fetchTooltip = {
|
||||
type = "toggle",
|
||||
name = L["Fetch Tooltip Information"],
|
||||
desc = L["This adds %tooltip, %tooltip1, %tooltip2, %tooltip3 as text replacements and also allows filtering based on the tooltip content/values."],
|
||||
desc = L["This adds %tooltip, %tooltip1, %tooltip2, %tooltip3 and %tooltip4 as text replacements and also allows filtering based on the tooltip content/values."],
|
||||
order = 64.5,
|
||||
width = WeakAuras.doubleWidth,
|
||||
hidden = function() return not (trigger.type == "aura2" and trigger.unit ~= "multi" and not IsSingleMissing(trigger)) end
|
||||
|
||||
@@ -91,6 +91,35 @@ function OptionsPrivate.GetInformationOptions(data)
|
||||
}
|
||||
order = order + 1
|
||||
end
|
||||
if OptionsPrivate.HasWagoUrl(data.id) then
|
||||
args.ignoreWagoUpdate = {
|
||||
type = "toggle",
|
||||
name = L["Ignore Wago updates"],
|
||||
desc = OptionsPrivate.IsWagoUpdateIgnored(data.id) and L["Do you want to enable updates for this aura"] or L["Do you want to ignore updates for this aura"],
|
||||
width = WeakAuras.doubleWidth,
|
||||
get = function() return OptionsPrivate.IsWagoUpdateIgnored(data.id) end,
|
||||
set = function(info, v)
|
||||
local auraData = WeakAuras.GetData(data.id)
|
||||
if auraData then
|
||||
local ignoreUpdate
|
||||
if OptionsPrivate.IsWagoUpdateIgnored(data.id) then
|
||||
ignoreUpdate = nil
|
||||
else
|
||||
ignoreUpdate = true
|
||||
end
|
||||
for child in OptionsPrivate.Private.TraverseAll(auraData) do
|
||||
child.ignoreWagoUpdate = ignoreUpdate
|
||||
OptionsPrivate.ClearOptions(child.id)
|
||||
end
|
||||
WeakAuras.ClearAndUpdateOptions(data.id)
|
||||
end
|
||||
OptionsPrivate.SortDisplayButtons(nil, true)
|
||||
|
||||
end,
|
||||
order = order
|
||||
}
|
||||
order = order + 1
|
||||
end
|
||||
|
||||
|
||||
-- Description
|
||||
|
||||
@@ -765,6 +765,7 @@ local function ConstructTextEditor(frame)
|
||||
|
||||
editor.editBox:SetScript("OnTextChanged", self.oldOnTextChanged)
|
||||
editor:ClearFocus()
|
||||
|
||||
frame.window = "default"
|
||||
frame:UpdateFrameVisible()
|
||||
WeakAuras.FillOptions()
|
||||
|
||||
@@ -479,25 +479,29 @@ StaticPopupDialogs["WEAKAURAS_CONFIRM_DELETE"] = {
|
||||
preferredindex = STATICPOPUP_NUMDIALOGS,
|
||||
}
|
||||
|
||||
StaticPopupDialogs["WEAKAURAS_CONFIRM_IGNORE_UPDATES"] = {
|
||||
text = L["Do you want to ignore all future updates for this aura"],
|
||||
button1 = L["Yes"],
|
||||
button2 = L["Cancel"],
|
||||
OnAccept = function(self)
|
||||
if self.data then
|
||||
local auraData = WeakAuras.GetData(self.data)
|
||||
if auraData then
|
||||
for child in OptionsPrivate.Private.TraverseAll(auraData) do
|
||||
child.ignoreWagoUpdate = true
|
||||
function OptionsPrivate.IsWagoUpdateIgnored(auraId)
|
||||
local auraData = WeakAuras.GetData(auraId)
|
||||
if auraData then
|
||||
for child in OptionsPrivate.Private.TraverseAll(auraData) do
|
||||
if child.ignoreWagoUpdate then
|
||||
return true
|
||||
end
|
||||
end
|
||||
OptionsPrivate.SortDisplayButtons(nil, true)
|
||||
end
|
||||
end,
|
||||
OnCancel = function(self) end,
|
||||
whileDead = true,
|
||||
preferredindex = STATICPOPUP_NUMDIALOGS,
|
||||
}
|
||||
return false
|
||||
end
|
||||
|
||||
function OptionsPrivate.HasWagoUrl(auraId)
|
||||
local auraData = WeakAuras.GetData(auraId)
|
||||
if auraData then
|
||||
for child in OptionsPrivate.Private.TraverseAll(auraData) do
|
||||
if child.url and child.url ~= "" then
|
||||
return true
|
||||
end
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
function OptionsPrivate.ConfirmDelete(toDelete, parents)
|
||||
if toDelete then
|
||||
|
||||
Reference in New Issue
Block a user