-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCore.lua
More file actions
89 lines (78 loc) · 2.97 KB
/
Core.lua
File metadata and controls
89 lines (78 loc) · 2.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
local addonName, addon = ...
addon.name = addonName
_G[addonName] = addon -- Global access if needed
-- Event Handling
local eventFrame = CreateFrame("Frame")
addon.eventFrame = eventFrame
eventFrame:RegisterEvent("ADDON_LOADED")
eventFrame:RegisterEvent("PLAYER_LOGIN")
eventFrame:SetScript("OnEvent", function(self, event, ...)
if event == "ADDON_LOADED" then
local name = ...
if name == addonName then
addon:OnLoad()
end
elseif event == "PLAYER_LOGIN" then
-- Ensure character is registered (fallback if UnitName wasn't ready during OnLoad)
if addon.db and addon.db.knownCharacters then
local charName = UnitName("player")
if charName then
addon.db.knownCharacters[charName] = true
end
end
if addon[event] then
addon[event](addon, ...)
end
elseif addon[event] then
addon[event](addon, ...)
end
end)
function addon:OnLoad()
-- Initialize DB
if not WoWLiteStatsDB then
WoWLiteStatsDB = {
kills = {},
lootHistory = {},
settings = {
minimap = { hide = false },
enableSharing = true, -- Allow inspecting/being inspected
minRankFilter = 1, -- 0=All, 1=Elite+, 2=RareElite+, 3=Boss only
},
contributors = {}, -- [npcID] = { [playerName] = true }
knownCharacters = {}, -- [charName] = true (all characters that have logged in)
}
end
addon.db = WoWLiteStatsDB
-- Ensure tables exist (migration for existing users)
if not addon.db.contributors then addon.db.contributors = {} end
if not addon.db.settings then addon.db.settings = {} end
if addon.db.settings.enableSharing == nil then addon.db.settings.enableSharing = true end
if addon.db.settings.minRankFilter == nil then addon.db.settings.minRankFilter = 1 end
if not addon.db.knownCharacters then addon.db.knownCharacters = {} end
-- Register current character
local charName = UnitName("player")
if charName then
addon.db.knownCharacters[charName] = true
end
-- Initialize Modules
if addon.InitData then addon:InitData() end
if addon.InitComm then addon:InitComm() end
if addon.InitDatabase then addon:InitDatabase() end
if addon.InitUI then addon:InitUI() end
print("|cFF00FF00WoWLiteStats|r loaded. Type /wls to open.")
end
-- Slash Commands
SLASH_WOWLITESTATS1 = "/wls"
SLASH_WOWLITESTATS2 = "/wowlitestats"
SlashCmdList["WOWLITESTATS"] = function(msg)
local cmd, arg = msg:lower():match("^(%S*)%s*(.*)$")
if cmd == "test" then
if addon.GenerateTestData then addon:GenerateTestData() end
elseif cmd == "reset" then
if addon.ResetData then addon:ResetData() end
elseif cmd == "lockouts" then
if addon.CheckLockouts then addon:CheckLockouts() end
else
if addon.ToggleUI then addon:ToggleUI() end
end
end