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@13
|
42 order = 0,
|
Asa@13
|
43 },
|
Asa@13
|
44 },
|
Asa@3
|
45 },
|
Asa@13
|
46
|
Asa@13
|
47 qa_options = {
|
Asa@13
|
48 name = "QA Options",
|
Asa@13
|
49 desc = "Control how ItemAuditor integrates with QuickAuctions",
|
Asa@13
|
50 type = 'group',
|
Asa@13
|
51 -- disabled = (not addon.QA_compatibile),
|
Asa@13
|
52 disabled = function() return not ItemAuditor:IsQACompatible() end,
|
Asa@13
|
53 args = {
|
Asa@13
|
54 toggle_qa = {
|
Asa@13
|
55 type = "toggle",
|
Asa@13
|
56 name = "Enable Quick Auctions",
|
Asa@13
|
57 desc = "This will enable or disable Quick Auctions integration",
|
Asa@13
|
58 get = "IsQAEnabled",
|
Asa@13
|
59 set = "SetQAEnabled",
|
Asa@13
|
60 order = 0,
|
Asa@13
|
61 },
|
Asa@13
|
62 --[[
|
Asa@13
|
63 add_mail = {
|
Asa@13
|
64 type = "toggle",
|
Asa@13
|
65 name = "Add mail cost to QA Threshold",
|
Asa@13
|
66 get = "IsQAEnabled",
|
Asa@13
|
67 set = "SetQAEnabled",
|
Asa@13
|
68 order = 1,
|
Asa@13
|
69 },
|
Asa@13
|
70 ]]
|
Asa@13
|
71 refresh_qa = {
|
Asa@13
|
72 type = "execute",
|
Asa@13
|
73 name = "Refresh QA Thresholds",
|
Asa@13
|
74 desc = "Resets all Quick Auctions thresholds",
|
Asa@13
|
75 func = "RefreshQAGroups",
|
Asa@13
|
76 disabled = 'IsQADisabled',
|
Asa@13
|
77 },
|
Asa@13
|
78 }
|
Asa@12
|
79 },
|
Asa@3
|
80 options = {
|
Asa@3
|
81 type = "execute",
|
Asa@3
|
82 name = "options",
|
Asa@3
|
83 desc = "Show Blizzard's options GUI",
|
Asa@3
|
84 func = "ShowOptionsGUI",
|
Asa@3
|
85 guiHidden = true,
|
Asa@3
|
86 },
|
Asa@3
|
87 },
|
Asa@3
|
88 }
|
Asa@3
|
89
|
Asa@3
|
90 function addon:RegisterOptions()
|
Asa@3
|
91 self.optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("ItemAuditor", "ItemAuditor")
|
Asa@3
|
92 LibStub("AceConfig-3.0"):RegisterOptionsTable("ItemAuditor", options, {"ia"})
|
Asa@3
|
93 end
|
Asa@3
|
94
|
Asa@7
|
95 local function pairsByKeys (t, f)
|
Asa@7
|
96 local a = {}
|
Asa@7
|
97 for n in pairs(t) do table.insert(a, n) end
|
Asa@7
|
98 table.sort(a, f)
|
Asa@7
|
99 local i = 0 -- iterator variable
|
Asa@7
|
100 local iter = function () -- iterator function
|
Asa@7
|
101 i = i + 1
|
Asa@7
|
102 if a[i] == nil then return nil
|
Asa@7
|
103 else return a[i], t[a[i]]
|
Asa@7
|
104 end
|
Asa@7
|
105 end
|
Asa@7
|
106 return iter
|
Asa@7
|
107 end
|
Asa@7
|
108
|
Asa@13
|
109 function addon:GetAH()
|
Asa@13
|
110 return ItemAuditor.db.char.ah
|
Asa@13
|
111 end
|
Asa@13
|
112
|
Asa@13
|
113 function addon:SetAH(info, value)
|
Asa@13
|
114 ItemAuditor.db.char.ah = value
|
Asa@13
|
115 end
|
Asa@13
|
116
|
Asa@13
|
117 function addon:GetAHCut()
|
Asa@13
|
118 if ItemAuditor.db.char.ah == 1 then
|
Asa@13
|
119 return 0.05
|
Asa@13
|
120 end
|
Asa@13
|
121 return 0.15
|
Asa@13
|
122 end
|
Asa@13
|
123
|
Asa@13
|
124 function addon:GetAHFaction()
|
Asa@13
|
125 return AHFactions[ItemAuditor.db.char.ah]
|
Asa@13
|
126 end
|
Asa@13
|
127
|
Asa@3
|
128 function addon:DumpInfo()
|
Asa@7
|
129 for itemName, value in pairsByKeys(self.db.factionrealm.item_account) do
|
Asa@7
|
130 self:Print(itemName .. ": " .. utils:FormatMoney(value))
|
Asa@7
|
131 end
|
Asa@3
|
132 end
|
Asa@3
|
133
|
Asa@7
|
134
|
Asa@3
|
135 function addon:ShowOptionsGUI()
|
Asa@3
|
136 InterfaceOptionsFrame_OpenToCategory(self.optionsFrame)
|
Asa@3
|
137 end
|
Asa@3
|
138
|
Asa@3
|
139 function addon:GetDebug(info)
|
Asa@3
|
140 return self.db.char.debug
|
Asa@3
|
141 end
|
Asa@3
|
142
|
Asa@3
|
143 function addon:SetDebug(info, input)
|
Asa@3
|
144 self.db.char.debug = input
|
Asa@3
|
145 local value = "off"
|
Asa@3
|
146 if input then
|
Asa@3
|
147 value = "on"
|
Asa@3
|
148 end
|
Asa@3
|
149 self:Print("Debugging is now: " .. value)
|
Asa@3
|
150 end
|