Broadcaster = LibStub("AceAddon-3.0"):NewAddon("Broadcaster", "AceConsole-3.0", "AceEvent-3.0") local L = LibStub("AceLocale-3.0"):GetLocale("Broadcaster") local chan = {"RAID", "PARTY", "Self"} local defaults = { profile = { channel = "Self", standby = false, }, } --OPTIONS-- local options = { name = "Broadcaster", -- handler = Broadcaster, plugins = {}, childGroups = "tree", type = "group", args = { standby = { name = L["Standby"], desc = L["Enable/disable the addon, so no messages are sent."], type = "toggle", order = 2, get = function() return Broadcaster.db.profile.standby end, set = function() Broadcaster.db.profile.standby = not Broadcaster.db.profile.standby end, }, channel = { name = L["Channel"], desc = L["The channel to broadcast your messages to."], type = "select", values = {L["Raid"], L["Party"], L["Self"]}, order = 1, get = function() for k, v in pairs(chan) do if Broadcaster.db.profile.channel == v then return k end end end, set = function(_, channel) Broadcaster.db.profile.channel = chan[channel] end, }, }, } function Broadcaster:OnInitialize() self.db = LibStub("AceDB-3.0"):New("BroadcasterDB", defaults, "Default") LibStub("AceConfig-3.0"):RegisterOptionsTable("Broadcaster", options) --, {"broadcaster", "bc"}) self.optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("Broadcaster", "Broadcaster") self:RegisterChatCommand("bc", function() LibStub("AceConfigDialog-3.0"):Open("Broadcaster") end) self:RegisterChatCommand("broadcaster", function() LibStub("AceConfigDialog-3.0"):Open("Broadcaster") end) end function Broadcaster:InjectOptions(name, opts) options.plugins[name] = opts end