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@18
|
95 queue = {
|
Asa@18
|
96 type = "execute",
|
Asa@18
|
97 name = "queue",
|
Asa@18
|
98 desc = "Queue",
|
Asa@18
|
99 func = "Queue",
|
Asa@18
|
100 guiHidden = true,
|
Asa@18
|
101 },
|
Asa@18
|
102
|
Asa@18
|
103
|
Asa@3
|
104 },
|
Asa@3
|
105 }
|
Asa@3
|
106
|
Asa@3
|
107 function addon:RegisterOptions()
|
Asa@3
|
108 self.optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("ItemAuditor", "ItemAuditor")
|
Asa@3
|
109 LibStub("AceConfig-3.0"):RegisterOptionsTable("ItemAuditor", options, {"ia"})
|
Asa@3
|
110 end
|
Asa@3
|
111
|
Asa@7
|
112 local function pairsByKeys (t, f)
|
Asa@7
|
113 local a = {}
|
Asa@7
|
114 for n in pairs(t) do table.insert(a, n) end
|
Asa@7
|
115 table.sort(a, f)
|
Asa@7
|
116 local i = 0 -- iterator variable
|
Asa@7
|
117 local iter = function () -- iterator function
|
Asa@7
|
118 i = i + 1
|
Asa@7
|
119 if a[i] == nil then return nil
|
Asa@7
|
120 else return a[i], t[a[i]]
|
Asa@7
|
121 end
|
Asa@7
|
122 end
|
Asa@7
|
123 return iter
|
Asa@7
|
124 end
|
Asa@7
|
125
|
Asa@13
|
126 function addon:GetAH()
|
Asa@13
|
127 return ItemAuditor.db.char.ah
|
Asa@13
|
128 end
|
Asa@13
|
129
|
Asa@13
|
130 function addon:SetAH(info, value)
|
Asa@13
|
131 ItemAuditor.db.char.ah = value
|
Asa@13
|
132 end
|
Asa@13
|
133
|
Asa@13
|
134 function addon:GetAHCut()
|
Asa@13
|
135 if ItemAuditor.db.char.ah == 1 then
|
Asa@13
|
136 return 0.05
|
Asa@13
|
137 end
|
Asa@13
|
138 return 0.15
|
Asa@13
|
139 end
|
Asa@13
|
140
|
Asa@13
|
141 function addon:GetAHFaction()
|
Asa@13
|
142 return AHFactions[ItemAuditor.db.char.ah]
|
Asa@13
|
143 end
|
Asa@13
|
144
|
Asa@3
|
145 function addon:DumpInfo()
|
Asa@7
|
146 for itemName, value in pairsByKeys(self.db.factionrealm.item_account) do
|
Asa@15
|
147 self:Print(itemName .. ": " .. self:FormatMoney(value))
|
Asa@7
|
148 end
|
Asa@3
|
149 end
|
Asa@3
|
150
|
Asa@7
|
151
|
Asa@3
|
152 function addon:ShowOptionsGUI()
|
Asa@3
|
153 InterfaceOptionsFrame_OpenToCategory(self.optionsFrame)
|
Asa@3
|
154 end
|
Asa@3
|
155
|
Asa@3
|
156
|