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.
65 lines
1.8 KiB
65 lines
1.8 KiB
local addonName, addon = ...
|
|
if not addon.healthCheck then return end
|
|
local L = addon.L
|
|
|
|
local ldb = LibStub:GetLibrary("LibDataBroker-1.1", true)
|
|
if not ldb then return end
|
|
|
|
local plugin = ldb:NewDataObject(addonName, {
|
|
type = "data source",
|
|
text = "0",
|
|
icon = "Interface\\AddOns\\"..addonName.."\\Media\\icon",
|
|
})
|
|
|
|
local BugGrabber = BugGrabber
|
|
|
|
function plugin.OnClick(self, button)
|
|
if button == "RightButton" then
|
|
InterfaceOptionsFrame_OpenToCategory(addonName)
|
|
InterfaceOptionsFrame_OpenToCategory(addonName)
|
|
else
|
|
if IsShiftKeyDown() then
|
|
ReloadUI()
|
|
elseif IsAltKeyDown() and (addon.db.altwipe == true) then
|
|
addon:Reset()
|
|
elseif BugSackFrame and BugSackFrame:IsShown() then
|
|
addon:CloseSack()
|
|
else
|
|
addon:OpenSack()
|
|
end
|
|
end
|
|
end
|
|
|
|
hooksecurefunc(addon, "UpdateDisplay", function()
|
|
local count = #addon:GetErrors(BugGrabber:GetSessionId())
|
|
plugin.text = count
|
|
plugin.icon = count == 0 and "Interface\\AddOns\\"..addonName.."\\Media\\icon" or "Interface\\AddOns\\"..addonName.."\\Media\\icon_red"
|
|
end)
|
|
|
|
do
|
|
local line = "%d. %s (x%d)"
|
|
function plugin.OnTooltipShow(tt)
|
|
local errs = addon:GetErrors(BugGrabber:GetSessionId())
|
|
if #errs == 0 then
|
|
tt:AddLine(L["You have no bugs, yay!"])
|
|
else
|
|
tt:AddLine(addonName)
|
|
for i, err in next, errs do
|
|
tt:AddLine(line:format(i, addon.ColorStack(err.message), err.counter), .5, .5, .5)
|
|
if i > 8 then break end
|
|
end
|
|
end
|
|
tt:AddLine(" ")
|
|
tt:AddLine(L.minimapHint, 0.2, 1, 0.2, 1)
|
|
end
|
|
end
|
|
|
|
local f = CreateFrame("Frame")
|
|
f:SetScript("OnEvent", function()
|
|
local icon = LibStub("LibDBIcon-1.0", true)
|
|
if not icon then return end
|
|
if not BugSackLDBIconDB then BugSackLDBIconDB = {} end
|
|
icon:Register(addonName, plugin, BugSackLDBIconDB)
|
|
end)
|
|
f:RegisterEvent("PLAYER_LOGIN")
|
|
|
|
|