1
0
Fork 0
AllTheLittleThings/AllTheLittleThings.lua

72 lines
1.7 KiB
Lua
Raw Normal View History

2011-05-30 13:01:19 -04:00
local core = LibStub("AceAddon-3.0"):NewAddon("AllTheLittleThings", "AceConsole-3.0", "AceEvent-3.0", "AceHook-3.0", "AceTimer-3.0")
atlt = core
local defaults = {
profile = {
},
}
local options_setter = function(info, v) local t=core.db.profile for k=1,#info-1 do t=t[info[k]] end t[info[#info]]=v core:UpdatePins(true) end
local options_getter = function(info) local t=core.db.profile for k=1,#info-1 do t=t[info[k]] end return t[info[#info]] end
local options = {
name = "AllTheLittleThings",
type = 'group',
set = options_setter,
get = options_getter,
args = {
},
}
local slashCallback = {}
2011-05-30 13:01:19 -04:00
function core:OnInitialize()
self.db = LibStub("AceDB-3.0"):New("AllTheLittleThingsDB", defaults, "Default")
self:RegisterChatCommand("atlt", "MainSlashHandle")
2011-05-30 13:01:19 -04:00
-- LibStub("AceConfigRegistry-3.0"):RegisterOptionsTable("AllTheLittleThings", options)
-- local ACD = LibStub("AceConfigDialog-3.0")
-- ACD:AddToBlizOptions("AllTheLittleThings", "AllTheLittleThings")
self:SetDefaultModulePrototype({
RegisterOptions = core.RegisterOptions,
RegisterSlashCommand = core.RegisterSlashCommand,
2011-05-30 13:01:19 -04:00
})
end
function core:OnEnable()
end
function core:OnDisable()
end
-- two registry functions called with self=mod
function core:RegisterOptions(options, defaults)
local name = self:GetName()
2011-05-30 13:01:19 -04:00
defaults.profile[name] = defaults
options.args[name] = {
name = name,
type = 'group',
args = options
}
end
function core:RegisterSlashCommand(callback, ...)
for i=1,select('#', ...) do
slashCallback[select('i', ...)] = self[callback]
end
end
function core:MainSlashHandle(msg)
local _, e, command = string.find("(%S+)", msg)
msg = string.sub(msg, e+1)
if command and slashCallback[command] then
slashCallback[command](msg)
else
-- print all commands
end
end