You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

124 lines
4.7 KiB

--- Kaliel's Tracker
--- Copyright (c) 2012-2022, Marouan Sabbagh <mar.sabbagh@gmail.com>
--- All Rights Reserved.
---
--- This file is part of addon Kaliel's Tracker.
local addonName, KT = ...
local M = KT:NewModule(addonName.."_Hacks")
KT.Hacks = M
local _DBG = function(...) if _DBG then _DBG("KT", ...) end end
local db
-- LFGList.lua
-- Affects the small Eye buttons for finding groups inside the tracker. When the hack is active,
-- the buttons work without errors. When hack is inactive, the buttons are not available.
-- Negative impacts:
-- - Inside the dialog for create Premade Group is hidden item "Goal".
-- - Tooltips of items in the list of Premade Groups have a hidden 2nd (green) row with "Goal".
-- - Inside the dialog for create Premade Group, no automatically set the "Title", e.g. keystone level for Mythic+.
local function Hack_LFG()
if db.hackLFG then
local bck_C_LFGList_GetSearchResultInfo = C_LFGList.GetSearchResultInfo
function C_LFGList.GetSearchResultInfo(resultID)
local searchResultInfo = bck_C_LFGList_GetSearchResultInfo(resultID)
if searchResultInfo then
searchResultInfo.playstyle = 0
end
return searchResultInfo
end
local bck_C_LFGList_GetLfgCategoryInfo = C_LFGList.GetLfgCategoryInfo
function C_LFGList.GetLfgCategoryInfo(categoryID)
local categoryInfo = bck_C_LFGList_GetLfgCategoryInfo(categoryID)
if categoryInfo then
categoryInfo.showPlaystyleDropdown = false
end
return categoryInfo
end
LFGListEntryCreation_OnPlayStyleSelected = function() end
LFGListEntryCreation_SetTitleFromActivityInfo = function() end
else
function QuestObjectiveSetupBlockButton_FindGroup(block, questID)
return false
end
end
end
-- Edit Mode
-- Affects Edit Mode and remove errors. But if you want to edit Target or Focus frames, you have to display them manually by chat command.
-- - For Target frame use command ... /target player
-- - For Focus frame use command ... /focus player
-- Negative impacts:
-- - Item "Target and Focus" is always enabled, but Target and Focus frames are not displayed.
-- - Target or Focus frames you display by chat command (see above).
-- - Tracker perform Reload UI when exiting Edit Mode.
local function Hack_EditMode()
hooksecurefunc(ObjectiveTrackerFrame, "HighlightSystem", function(self)
self.Selection:Hide()
end)
hooksecurefunc(ObjectiveTrackerFrame, "OnEditModeEnter", function(self)
ObjectiveTracker_Update()
end)
hooksecurefunc(ObjectiveTrackerFrame, "OnEditModeExit", function(self)
if EditModeManagerFrame:IsEditModeLocked() then
ObjectiveTracker_Update()
else
ReloadUI()
end
end)
function EditModeManagerFrame.AccountSettings.Settings.TargetAndFocus:ShouldEnable()
return false
end
hooksecurefunc(EditModeManagerFrame.AccountSettings, "OnEditModeEnter", function(self)
print("EditModeManagerFrame.AccountSettings ... OnEditModeEnter")
if not self.KTinfo then
print(".....")
self.Settings.TargetAndFocus.Button:SetPoint("TOPLEFT")
local infoText = self.Settings.TargetAndFocus:CreateFontString(nil, "ARTWORK", "GameFontNormalSmall")
infoText:SetWidth(180)
infoText:SetPoint("TOPLEFT", self.Settings.TargetAndFocus.Label, "BOTTOMLEFT", 0, 6)
infoText:SetJustifyH("LEFT")
infoText:SetText("|cff00ffffDisabled by "..KT.title..".\n\nFor display use commands:\n- Target frame ... |cffffffff/target player\n|cff00ffff- Focus frame ... |cffffffff/focus player")
self.KTinfo = true
end
end)
function EditModeManagerFrame.AccountSettings:RefreshTargetAndFocus() -- R
print("EditModeManagerFrame.AccountSettings ... RefreshTargetAndFocus")
self.Settings.TargetAndFocus:SetControlChecked(true)
TargetFrame:HighlightSystem()
FocusFrame:HighlightSystem()
self:RegisterEvent("PLAYER_TARGET_CHANGED")
self:RegisterEvent("PLAYER_FOCUS_CHANGED")
end
function EditModeManagerFrame.AccountSettings:ResetTargetAndFocus() -- R
self:UnregisterEvent("PLAYER_TARGET_CHANGED")
self:UnregisterEvent("PLAYER_FOCUS_CHANGED")
TargetFrame:ClearHighlight()
FocusFrame:ClearHighlight()
end
end
function M:OnInitialize()
_DBG("|cffffff00Init|r - "..self:GetName(), true)
db = KT.db.profile
end
function M:OnEnable()
_DBG("|cff00ff00Enable|r - "..self:GetName(), true)
Hack_LFG()
Hack_EditMode()
end