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@20
|
9 local craftingThresholds = {5000, 10000, 50000}
|
Asa@20
|
10 local craftingThresholdsDisplay = {}
|
Asa@20
|
11
|
Asa@20
|
12 for key, value in pairs(craftingThresholds) do
|
Asa@20
|
13 craftingThresholdsDisplay[key] = addon:FormatMoney(value, '', true)
|
Asa@20
|
14 -- craftingThresholdsDisplay[key] = value
|
Asa@20
|
15 end
|
Asa@20
|
16
|
Asa@3
|
17 local options = {
|
Asa@13
|
18 handler = addon,
|
Asa@3
|
19 name = "ItemAuditor",
|
Asa@3
|
20 type = 'group',
|
Asa@3
|
21 args = {
|
Asa@13
|
22 prices = {
|
Asa@13
|
23 name = "Prices",
|
Asa@13
|
24 desc = "Control how your minimum price is calculated.",
|
Asa@13
|
25 type = 'group',
|
Asa@13
|
26 args = {
|
Asa@13
|
27 auction_house = {
|
Asa@13
|
28 type = "select",
|
Asa@13
|
29 name = "Auction House",
|
Asa@13
|
30 desc = "",
|
Asa@13
|
31 values = { currentFaction, 'Neutral' },
|
Asa@13
|
32 get = 'GetAH',
|
Asa@13
|
33 set = 'SetAH',
|
Asa@13
|
34 },
|
Asa@13
|
35 },
|
Asa@3
|
36 },
|
Asa@13
|
37
|
Asa@13
|
38
|
Asa@13
|
39 messages = {
|
Asa@13
|
40 name = "Messages",
|
Asa@13
|
41 desc = "Control which messages display in your chat window.",
|
Asa@13
|
42 type = 'group',
|
Asa@13
|
43 args = {
|
Asa@20
|
44
|
Asa@20
|
45 item_cost = {
|
Asa@20
|
46 type = "toggle",
|
Asa@20
|
47 name = "Item Cost",
|
Asa@20
|
48 desc = "Shows a message every time an item's cost changes",
|
Asa@20
|
49 get = function() return ItemAuditor.db.profile.messages.cost_updates end,
|
Asa@20
|
50 set = function(info, value) ItemAuditor.db.profile.messages.cost_updates = value end,
|
Asa@20
|
51 order = 0,
|
Asa@20
|
52 },
|
Asa@20
|
53 queue_skip = {
|
Asa@20
|
54 type = "toggle",
|
Asa@20
|
55 name = "Queue Skip",
|
Asa@20
|
56 desc = "Displays a message when an item is excluded from the queue.",
|
Asa@20
|
57 get = function() return ItemAuditor.db.profile.messages.queue_skip end,
|
Asa@20
|
58 set = function(info, value) ItemAuditor.db.profile.messages.queue_skip = value end,
|
Asa@20
|
59 disabled = 'IsQADisabled',
|
Asa@20
|
60 order = 1,
|
Asa@20
|
61 },
|
Asa@13
|
62 dbg = {
|
Asa@13
|
63 type = "toggle",
|
Asa@13
|
64 name = "Debug",
|
Asa@13
|
65 desc = "Toggles debug messages in chat",
|
Asa@13
|
66 get = "GetDebug",
|
Asa@13
|
67 set = "SetDebug",
|
Asa@16
|
68 order = 100,
|
Asa@16
|
69 },
|
Asa@13
|
70 },
|
Asa@3
|
71 },
|
Asa@13
|
72
|
Asa@13
|
73 qa_options = {
|
Asa@13
|
74 name = "QA Options",
|
Asa@13
|
75 desc = "Control how ItemAuditor integrates with QuickAuctions",
|
Asa@13
|
76 type = 'group',
|
Asa@13
|
77 -- disabled = (not addon.QA_compatibile),
|
Asa@13
|
78 disabled = function() return not ItemAuditor:IsQACompatible() end,
|
Asa@13
|
79 args = {
|
Asa@13
|
80 toggle_qa = {
|
Asa@13
|
81 type = "toggle",
|
Asa@13
|
82 name = "Enable Quick Auctions",
|
Asa@13
|
83 desc = "This will enable or disable Quick Auctions integration",
|
Asa@13
|
84 get = "IsQAEnabled",
|
Asa@13
|
85 set = "SetQAEnabled",
|
Asa@13
|
86 order = 0,
|
Asa@13
|
87 },
|
Asa@13
|
88 --[[
|
Asa@13
|
89 add_mail = {
|
Asa@13
|
90 type = "toggle",
|
Asa@13
|
91 name = "Add mail cost to QA Threshold",
|
Asa@13
|
92 get = "IsQAEnabled",
|
Asa@13
|
93 set = "SetQAEnabled",
|
Asa@13
|
94 order = 1,
|
Asa@13
|
95 },
|
Asa@13
|
96 ]]
|
Asa@20
|
97 auction_threshold = {
|
Asa@20
|
98 type = "range",
|
Asa@20
|
99 name = "Auction Threshold",
|
Asa@20
|
100 desc = "Don't create items that will make less than this amount of profit",
|
Asa@20
|
101 min = 0.0,
|
Asa@20
|
102 max = 1.0,
|
Asa@20
|
103 isPercent = true,
|
Asa@20
|
104 get = function() return ItemAuditor.db.char.auction_threshold end,
|
Asa@20
|
105 set = function(info, value) ItemAuditor.db.char.auction_threshold = value end,
|
Asa@20
|
106 disabled = 'IsQADisabled',
|
Asa@20
|
107 order = 1,
|
Asa@20
|
108 },
|
Asa@13
|
109 refresh_qa = {
|
Asa@13
|
110 type = "execute",
|
Asa@13
|
111 name = "Refresh QA Thresholds",
|
Asa@13
|
112 desc = "Resets all Quick Auctions thresholds",
|
Asa@13
|
113 func = "RefreshQAGroups",
|
Asa@13
|
114 disabled = 'IsQADisabled',
|
Asa@20
|
115 order = 9,
|
Asa@13
|
116 },
|
Asa@20
|
117
|
Asa@20
|
118 queue_header = {
|
Asa@20
|
119 type = "header",
|
Asa@20
|
120 name = "Skillet Queue Options",
|
Asa@20
|
121 order = 10,
|
Asa@20
|
122 },
|
Asa@20
|
123
|
Asa@20
|
124 crafting_threshold = {
|
Asa@20
|
125 type = "select",
|
Asa@20
|
126 name = "Crafting Threshold",
|
Asa@20
|
127 desc = "Don't create items that will make less than this amount of profit",
|
Asa@20
|
128 values = craftingThresholdsDisplay,
|
Asa@20
|
129 get = function() return ItemAuditor.db.char.crafting_threshold end,
|
Asa@20
|
130 set = function(info, value) ItemAuditor.db.char.crafting_threshold = value end,
|
Asa@20
|
131 disabled = 'IsQADisabled',
|
Asa@20
|
132 order = 11,
|
Asa@20
|
133 },
|
Asa@20
|
134
|
Asa@13
|
135 }
|
Asa@12
|
136 },
|
Asa@3
|
137 options = {
|
Asa@3
|
138 type = "execute",
|
Asa@3
|
139 name = "options",
|
Asa@3
|
140 desc = "Show Blizzard's options GUI",
|
Asa@3
|
141 func = "ShowOptionsGUI",
|
Asa@3
|
142 guiHidden = true,
|
Asa@3
|
143 },
|
Asa@18
|
144 queue = {
|
Asa@18
|
145 type = "execute",
|
Asa@18
|
146 name = "queue",
|
Asa@18
|
147 desc = "Queue",
|
Asa@18
|
148 func = "Queue",
|
Asa@18
|
149 guiHidden = true,
|
Asa@18
|
150 },
|
Asa@18
|
151
|
Asa@18
|
152
|
Asa@3
|
153 },
|
Asa@3
|
154 }
|
Asa@3
|
155
|
Asa@3
|
156 function addon:RegisterOptions()
|
Asa@3
|
157 self.optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("ItemAuditor", "ItemAuditor")
|
Asa@3
|
158 LibStub("AceConfig-3.0"):RegisterOptionsTable("ItemAuditor", options, {"ia"})
|
Asa@3
|
159 end
|
Asa@3
|
160
|
Asa@7
|
161 local function pairsByKeys (t, f)
|
Asa@7
|
162 local a = {}
|
Asa@7
|
163 for n in pairs(t) do table.insert(a, n) end
|
Asa@7
|
164 table.sort(a, f)
|
Asa@7
|
165 local i = 0 -- iterator variable
|
Asa@7
|
166 local iter = function () -- iterator function
|
Asa@7
|
167 i = i + 1
|
Asa@7
|
168 if a[i] == nil then return nil
|
Asa@7
|
169 else return a[i], t[a[i]]
|
Asa@7
|
170 end
|
Asa@7
|
171 end
|
Asa@7
|
172 return iter
|
Asa@7
|
173 end
|
Asa@7
|
174
|
Asa@20
|
175 function addon:GetCraftingThreshold()
|
Asa@20
|
176 local key = ItemAuditor.db.char.crafting_threshold
|
Asa@20
|
177 return craftingThresholds[key]
|
Asa@20
|
178 end
|
Asa@20
|
179
|
Asa@20
|
180 function addon:GetAuctionThreshold()
|
Asa@20
|
181 return ItemAuditor.db.char.auction_threshold
|
Asa@20
|
182 end
|
Asa@20
|
183
|
Asa@13
|
184 function addon:GetAH()
|
Asa@13
|
185 return ItemAuditor.db.char.ah
|
Asa@13
|
186 end
|
Asa@13
|
187
|
Asa@13
|
188 function addon:SetAH(info, value)
|
Asa@13
|
189 ItemAuditor.db.char.ah = value
|
Asa@13
|
190 end
|
Asa@13
|
191
|
Asa@13
|
192 function addon:GetAHCut()
|
Asa@13
|
193 if ItemAuditor.db.char.ah == 1 then
|
Asa@13
|
194 return 0.05
|
Asa@13
|
195 end
|
Asa@13
|
196 return 0.15
|
Asa@13
|
197 end
|
Asa@13
|
198
|
Asa@13
|
199 function addon:GetAHFaction()
|
Asa@13
|
200 return AHFactions[ItemAuditor.db.char.ah]
|
Asa@13
|
201 end
|
Asa@13
|
202
|
Asa@3
|
203 function addon:DumpInfo()
|
Asa@7
|
204 for itemName, value in pairsByKeys(self.db.factionrealm.item_account) do
|
Asa@15
|
205 self:Print(itemName .. ": " .. self:FormatMoney(value))
|
Asa@7
|
206 end
|
Asa@3
|
207 end
|
Asa@3
|
208
|
Asa@7
|
209
|
Asa@3
|
210 function addon:ShowOptionsGUI()
|
Asa@3
|
211 InterfaceOptionsFrame_OpenToCategory(self.optionsFrame)
|
Asa@3
|
212 end
|
Asa@3
|
213
|
Asa@3
|
214
|