Asa@3
|
1 local addonName, addonTable = ...;
|
Asa@3
|
2 local addon = _G[addonName]
|
Asa@3
|
3
|
Asa@3
|
4 local utils = addonTable.utils
|
Asa@3
|
5
|
Asa@13
|
6 local currentFaction = UnitFactionGroup("player")
|
Asa@13
|
7 local AHFactions = { currentFaction, 'Neutral' }
|
Asa@13
|
8
|
Asa@3
|
9 local options = {
|
Asa@13
|
10 handler = addon,
|
Asa@3
|
11 name = "ItemAuditor",
|
Asa@3
|
12 type = 'group',
|
Asa@3
|
13 args = {
|
Asa@13
|
14 prices = {
|
Asa@13
|
15 name = "Prices",
|
Asa@13
|
16 desc = "Control how your minimum price is calculated.",
|
Asa@13
|
17 type = 'group',
|
Asa@13
|
18 args = {
|
Asa@13
|
19 auction_house = {
|
Asa@13
|
20 type = "select",
|
Asa@13
|
21 name = "Auction House",
|
Asa@13
|
22 desc = "",
|
Asa@13
|
23 values = { currentFaction, 'Neutral' },
|
Asa@13
|
24 get = 'GetAH',
|
Asa@13
|
25 set = 'SetAH',
|
Asa@13
|
26 },
|
Asa@13
|
27 },
|
Asa@3
|
28 },
|
Asa@13
|
29
|
Asa@13
|
30
|
Asa@13
|
31 messages = {
|
Asa@13
|
32 name = "Messages",
|
Asa@13
|
33 desc = "Control which messages display in your chat window.",
|
Asa@13
|
34 type = 'group',
|
Asa@13
|
35 args = {
|
Asa@13
|
36 dbg = {
|
Asa@13
|
37 type = "toggle",
|
Asa@13
|
38 name = "Debug",
|
Asa@13
|
39 desc = "Toggles debug messages in chat",
|
Asa@13
|
40 get = "GetDebug",
|
Asa@13
|
41 set = "SetDebug",
|
Asa@16
|
42 order = 100,
|
Asa@16
|
43 },
|
Asa@16
|
44 item_cost = {
|
Asa@16
|
45 type = "toggle",
|
Asa@16
|
46 name = "Item Cost",
|
Asa@16
|
47 desc = "Shows a message every time an item's cost changes",
|
Asa@16
|
48 get = function() return ItemAuditor.db.profile.messages.cost_updates end,
|
Asa@16
|
49 set = function(info, value) ItemAuditor.db.profile.messages.cost_updates = value end,
|
Asa@13
|
50 order = 0,
|
Asa@13
|
51 },
|
Asa@13
|
52 },
|
Asa@3
|
53 },
|
Asa@13
|
54
|
Asa@13
|
55 qa_options = {
|
Asa@13
|
56 name = "QA Options",
|
Asa@13
|
57 desc = "Control how ItemAuditor integrates with QuickAuctions",
|
Asa@13
|
58 type = 'group',
|
Asa@13
|
59 -- disabled = (not addon.QA_compatibile),
|
Asa@13
|
60 disabled = function() return not ItemAuditor:IsQACompatible() end,
|
Asa@13
|
61 args = {
|
Asa@13
|
62 toggle_qa = {
|
Asa@13
|
63 type = "toggle",
|
Asa@13
|
64 name = "Enable Quick Auctions",
|
Asa@13
|
65 desc = "This will enable or disable Quick Auctions integration",
|
Asa@13
|
66 get = "IsQAEnabled",
|
Asa@13
|
67 set = "SetQAEnabled",
|
Asa@13
|
68 order = 0,
|
Asa@13
|
69 },
|
Asa@13
|
70 --[[
|
Asa@13
|
71 add_mail = {
|
Asa@13
|
72 type = "toggle",
|
Asa@13
|
73 name = "Add mail cost to QA Threshold",
|
Asa@13
|
74 get = "IsQAEnabled",
|
Asa@13
|
75 set = "SetQAEnabled",
|
Asa@13
|
76 order = 1,
|
Asa@13
|
77 },
|
Asa@13
|
78 ]]
|
Asa@13
|
79 refresh_qa = {
|
Asa@13
|
80 type = "execute",
|
Asa@13
|
81 name = "Refresh QA Thresholds",
|
Asa@13
|
82 desc = "Resets all Quick Auctions thresholds",
|
Asa@13
|
83 func = "RefreshQAGroups",
|
Asa@13
|
84 disabled = 'IsQADisabled',
|
Asa@13
|
85 },
|
Asa@13
|
86 }
|
Asa@12
|
87 },
|
Asa@3
|
88 options = {
|
Asa@3
|
89 type = "execute",
|
Asa@3
|
90 name = "options",
|
Asa@3
|
91 desc = "Show Blizzard's options GUI",
|
Asa@3
|
92 func = "ShowOptionsGUI",
|
Asa@3
|
93 guiHidden = true,
|
Asa@3
|
94 },
|
Asa@3
|
95 },
|
Asa@3
|
96 }
|
Asa@3
|
97
|
Asa@3
|
98 function addon:RegisterOptions()
|
Asa@3
|
99 self.optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("ItemAuditor", "ItemAuditor")
|
Asa@3
|
100 LibStub("AceConfig-3.0"):RegisterOptionsTable("ItemAuditor", options, {"ia"})
|
Asa@3
|
101 end
|
Asa@3
|
102
|
Asa@7
|
103 local function pairsByKeys (t, f)
|
Asa@7
|
104 local a = {}
|
Asa@7
|
105 for n in pairs(t) do table.insert(a, n) end
|
Asa@7
|
106 table.sort(a, f)
|
Asa@7
|
107 local i = 0 -- iterator variable
|
Asa@7
|
108 local iter = function () -- iterator function
|
Asa@7
|
109 i = i + 1
|
Asa@7
|
110 if a[i] == nil then return nil
|
Asa@7
|
111 else return a[i], t[a[i]]
|
Asa@7
|
112 end
|
Asa@7
|
113 end
|
Asa@7
|
114 return iter
|
Asa@7
|
115 end
|
Asa@7
|
116
|
Asa@13
|
117 function addon:GetAH()
|
Asa@13
|
118 return ItemAuditor.db.char.ah
|
Asa@13
|
119 end
|
Asa@13
|
120
|
Asa@13
|
121 function addon:SetAH(info, value)
|
Asa@13
|
122 ItemAuditor.db.char.ah = value
|
Asa@13
|
123 end
|
Asa@13
|
124
|
Asa@13
|
125 function addon:GetAHCut()
|
Asa@13
|
126 if ItemAuditor.db.char.ah == 1 then
|
Asa@13
|
127 return 0.05
|
Asa@13
|
128 end
|
Asa@13
|
129 return 0.15
|
Asa@13
|
130 end
|
Asa@13
|
131
|
Asa@13
|
132 function addon:GetAHFaction()
|
Asa@13
|
133 return AHFactions[ItemAuditor.db.char.ah]
|
Asa@13
|
134 end
|
Asa@13
|
135
|
Asa@3
|
136 function addon:DumpInfo()
|
Asa@7
|
137 for itemName, value in pairsByKeys(self.db.factionrealm.item_account) do
|
Asa@15
|
138 self:Print(itemName .. ": " .. self:FormatMoney(value))
|
Asa@7
|
139 end
|
Asa@3
|
140 end
|
Asa@3
|
141
|
Asa@7
|
142
|
Asa@3
|
143 function addon:ShowOptionsGUI()
|
Asa@3
|
144 InterfaceOptionsFrame_OpenToCategory(self.optionsFrame)
|
Asa@3
|
145 end
|
Asa@3
|
146
|
Asa@3
|
147
|