Asa@3: local addonName, addonTable = ...; Asa@3: local addon = _G[addonName] Asa@3: Asa@3: local utils = addonTable.utils Asa@3: Asa@13: local currentFaction = UnitFactionGroup("player") Asa@13: local AHFactions = { currentFaction, 'Neutral' } Asa@13: Asa@3: local options = { Asa@13: handler = addon, Asa@3: name = "ItemAuditor", Asa@3: type = 'group', Asa@3: args = { Asa@13: prices = { Asa@13: name = "Prices", Asa@13: desc = "Control how your minimum price is calculated.", Asa@13: type = 'group', Asa@13: args = { Asa@13: auction_house = { Asa@13: type = "select", Asa@13: name = "Auction House", Asa@13: desc = "", Asa@13: values = { currentFaction, 'Neutral' }, Asa@13: get = 'GetAH', Asa@13: set = 'SetAH', Asa@13: }, Asa@13: }, Asa@3: }, Asa@13: Asa@13: Asa@13: messages = { Asa@13: name = "Messages", Asa@13: desc = "Control which messages display in your chat window.", Asa@13: type = 'group', Asa@13: args = { Asa@13: dbg = { Asa@13: type = "toggle", Asa@13: name = "Debug", Asa@13: desc = "Toggles debug messages in chat", Asa@13: get = "GetDebug", Asa@13: set = "SetDebug", Asa@16: order = 100, Asa@16: }, Asa@16: item_cost = { Asa@16: type = "toggle", Asa@16: name = "Item Cost", Asa@16: desc = "Shows a message every time an item's cost changes", Asa@16: get = function() return ItemAuditor.db.profile.messages.cost_updates end, Asa@16: set = function(info, value) ItemAuditor.db.profile.messages.cost_updates = value end, Asa@13: order = 0, Asa@13: }, Asa@13: }, Asa@3: }, Asa@13: Asa@13: qa_options = { Asa@13: name = "QA Options", Asa@13: desc = "Control how ItemAuditor integrates with QuickAuctions", Asa@13: type = 'group', Asa@13: -- disabled = (not addon.QA_compatibile), Asa@13: disabled = function() return not ItemAuditor:IsQACompatible() end, Asa@13: args = { Asa@13: toggle_qa = { Asa@13: type = "toggle", Asa@13: name = "Enable Quick Auctions", Asa@13: desc = "This will enable or disable Quick Auctions integration", Asa@13: get = "IsQAEnabled", Asa@13: set = "SetQAEnabled", Asa@13: order = 0, Asa@13: }, Asa@13: --[[ Asa@13: add_mail = { Asa@13: type = "toggle", Asa@13: name = "Add mail cost to QA Threshold", Asa@13: get = "IsQAEnabled", Asa@13: set = "SetQAEnabled", Asa@13: order = 1, Asa@13: }, Asa@13: ]] Asa@13: refresh_qa = { Asa@13: type = "execute", Asa@13: name = "Refresh QA Thresholds", Asa@13: desc = "Resets all Quick Auctions thresholds", Asa@13: func = "RefreshQAGroups", Asa@13: disabled = 'IsQADisabled', Asa@13: }, Asa@13: } Asa@12: }, Asa@3: options = { Asa@3: type = "execute", Asa@3: name = "options", Asa@3: desc = "Show Blizzard's options GUI", Asa@3: func = "ShowOptionsGUI", Asa@3: guiHidden = true, Asa@3: }, Asa@18: queue = { Asa@18: type = "execute", Asa@18: name = "queue", Asa@18: desc = "Queue", Asa@18: func = "Queue", Asa@18: guiHidden = true, Asa@18: }, Asa@18: Asa@18: Asa@3: }, Asa@3: } Asa@3: Asa@3: function addon:RegisterOptions() Asa@3: self.optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("ItemAuditor", "ItemAuditor") Asa@3: LibStub("AceConfig-3.0"):RegisterOptionsTable("ItemAuditor", options, {"ia"}) Asa@3: end Asa@3: Asa@7: local function pairsByKeys (t, f) Asa@7: local a = {} Asa@7: for n in pairs(t) do table.insert(a, n) end Asa@7: table.sort(a, f) Asa@7: local i = 0 -- iterator variable Asa@7: local iter = function () -- iterator function Asa@7: i = i + 1 Asa@7: if a[i] == nil then return nil Asa@7: else return a[i], t[a[i]] Asa@7: end Asa@7: end Asa@7: return iter Asa@7: end Asa@7: Asa@13: function addon:GetAH() Asa@13: return ItemAuditor.db.char.ah Asa@13: end Asa@13: Asa@13: function addon:SetAH(info, value) Asa@13: ItemAuditor.db.char.ah = value Asa@13: end Asa@13: Asa@13: function addon:GetAHCut() Asa@13: if ItemAuditor.db.char.ah == 1 then Asa@13: return 0.05 Asa@13: end Asa@13: return 0.15 Asa@13: end Asa@13: Asa@13: function addon:GetAHFaction() Asa@13: return AHFactions[ItemAuditor.db.char.ah] Asa@13: end Asa@13: Asa@3: function addon:DumpInfo() Asa@7: for itemName, value in pairsByKeys(self.db.factionrealm.item_account) do Asa@15: self:Print(itemName .. ": " .. self:FormatMoney(value)) Asa@7: end Asa@3: end Asa@3: Asa@7: Asa@3: function addon:ShowOptionsGUI() Asa@3: InterfaceOptionsFrame_OpenToCategory(self.optionsFrame) Asa@3: end Asa@3: Asa@3: