I wrote two test-addons and both work as they should. The first without AceAddon and the second with.
Lua Code:
## Interface: 70300
## Title: Example_AceDB_01
## SavedVariables: Example_AceDB_01DB
AceDB-3.0/AceDB-3.0.xml
Example_AceDB_01.lua
Lua Code:
local addonName, addonTable = ...
local defaults = {
profile = {
loaded = addonName,
open = false
}
}
local f = CreateFrame("FRAME")
local function handleEvent(self, event)
if(event == "ADDON_LOADED") then
if(arg1 ~= childName) then return end
addonTable['db'] = addonTable['db'] or LibStub("AceDB-3.0"):New(addonName.."DB", defaults, true)
self:UnregisterEvent("ADDON_LOADED")
self:RegisterEvent("MAIL_SHOW")
self:RegisterEvent("MERCHANT_SHOW")
elseif(event == "MERCHANT_SHOW") then
addonTable['db']['profile']['open'] = false
elseif(event == "MAIL_SHOW") then
addonTable['db']['profile']['open'] = true
end
end
f:RegisterEvent("ADDON_LOADED")
f:SetScript("OnEvent", handleEvent)
Lua Code:
## Interface: 70300
## Title: Example_AceDB_02
## SavedVariables: Example_AceDB_02DB
AceAddon-3.0/AceAddon-3.0.xml
AceDB-3.0/AceDB-3.0.xml
Example_AceDB_02.lua
Lua Code:
local addonName, addonTable = ...
local defaults = {
profile = {
loaded = addonName,
open = false
}
}
local AceDBExample = LibStub("AceAddon-3.0"):NewAddon(addonName)
local function handleEvent(self, event)
if(event == "MERCHANT_SHOW") then
addonTable['db']['profile']['open'] = false
elseif(event == "MAIL_SHOW") then
addonTable['db']['profile']['open'] = true
end
end
function AceDBExample:OnInitialize()
addonTable['db'] = addonTable['db'] or LibStub("AceDB-3.0"):New(addonName.."DB", defaults, true)
local f = CreateFrame("FRAME")
f:RegisterEvent("MAIL_SHOW")
f:RegisterEvent("MERCHANT_SHOW")
f:SetScript("OnEvent", handleEvent)
end
You can find them in the
WoWI-SVN