Zerotorescue@13
|
1 local addon = LibStub("AceAddon-3.0"):GetAddon("Inventorium");
|
Zerotorescue@13
|
2 local mod = addon:NewModule("Queue", "AceEvent-3.0", "AceTimer-3.0");
|
Zerotorescue@13
|
3
|
Zerotorescue@13
|
4 local scrollIds = {
|
Zerotorescue@13
|
5 [27951] = 37603,
|
Zerotorescue@13
|
6 [7418] = 38679,
|
Zerotorescue@13
|
7 [7420] = 38766,
|
Zerotorescue@13
|
8 [7426] = 38767,
|
Zerotorescue@13
|
9 [7428] = 38768,
|
Zerotorescue@13
|
10 [7443] = 38769,
|
Zerotorescue@13
|
11 [7454] = 38770,
|
Zerotorescue@13
|
12 [7457] = 38771,
|
Zerotorescue@13
|
13 [7745] = 38772,
|
Zerotorescue@13
|
14 [7748] = 38773,
|
Zerotorescue@13
|
15 [7766] = 38774,
|
Zerotorescue@13
|
16 [7771] = 38775,
|
Zerotorescue@13
|
17 [7776] = 38776,
|
Zerotorescue@13
|
18 [7779] = 38777,
|
Zerotorescue@13
|
19 [7782] = 38778,
|
Zerotorescue@13
|
20 [7786] = 38779,
|
Zerotorescue@13
|
21 [7788] = 38780,
|
Zerotorescue@13
|
22 [7793] = 38781,
|
Zerotorescue@13
|
23 [7857] = 38782,
|
Zerotorescue@13
|
24 [7859] = 38783,
|
Zerotorescue@13
|
25 [7861] = 38784,
|
Zerotorescue@13
|
26 [7863] = 38785,
|
Zerotorescue@13
|
27 [7867] = 38786,
|
Zerotorescue@13
|
28 [13378] = 38787,
|
Zerotorescue@13
|
29 [13380] = 38788,
|
Zerotorescue@13
|
30 [13419] = 38789,
|
Zerotorescue@13
|
31 [13421] = 38790,
|
Zerotorescue@13
|
32 [13464] = 38791,
|
Zerotorescue@13
|
33 [13485] = 38792,
|
Zerotorescue@13
|
34 [13501] = 38793,
|
Zerotorescue@13
|
35 [13503] = 38794,
|
Zerotorescue@13
|
36 [13522] = 38795,
|
Zerotorescue@13
|
37 [13529] = 38796,
|
Zerotorescue@13
|
38 [13536] = 38797,
|
Zerotorescue@13
|
39 [13538] = 38798,
|
Zerotorescue@13
|
40 [13607] = 38799,
|
Zerotorescue@13
|
41 [13612] = 38800,
|
Zerotorescue@13
|
42 [13617] = 38801,
|
Zerotorescue@13
|
43 [13620] = 38802,
|
Zerotorescue@13
|
44 [13622] = 38803,
|
Zerotorescue@13
|
45 [13626] = 38804,
|
Zerotorescue@13
|
46 [13631] = 38805,
|
Zerotorescue@13
|
47 [13635] = 38806,
|
Zerotorescue@13
|
48 [13637] = 38807,
|
Zerotorescue@13
|
49 [13640] = 38808,
|
Zerotorescue@13
|
50 [13642] = 38809,
|
Zerotorescue@13
|
51 [13644] = 38810,
|
Zerotorescue@13
|
52 [13646] = 38811,
|
Zerotorescue@13
|
53 [13648] = 38812,
|
Zerotorescue@13
|
54 [13653] = 38813,
|
Zerotorescue@13
|
55 [13655] = 38814,
|
Zerotorescue@13
|
56 [13657] = 38815,
|
Zerotorescue@13
|
57 [13659] = 38816,
|
Zerotorescue@13
|
58 [13661] = 38817,
|
Zerotorescue@13
|
59 [13663] = 38818,
|
Zerotorescue@13
|
60 [13687] = 38819,
|
Zerotorescue@13
|
61 [13689] = 38820,
|
Zerotorescue@13
|
62 [13693] = 38821,
|
Zerotorescue@13
|
63 [13695] = 38822,
|
Zerotorescue@13
|
64 [13698] = 38823,
|
Zerotorescue@13
|
65 [13700] = 38824,
|
Zerotorescue@13
|
66 [13746] = 38825,
|
Zerotorescue@13
|
67 [13794] = 38826,
|
Zerotorescue@13
|
68 [13815] = 38827,
|
Zerotorescue@13
|
69 [13817] = 38828,
|
Zerotorescue@13
|
70 [13822] = 38829,
|
Zerotorescue@13
|
71 [13836] = 38830,
|
Zerotorescue@13
|
72 [13841] = 38831,
|
Zerotorescue@13
|
73 [13846] = 38832,
|
Zerotorescue@13
|
74 [13858] = 38833,
|
Zerotorescue@13
|
75 [13868] = 38834,
|
Zerotorescue@13
|
76 [13882] = 38835,
|
Zerotorescue@13
|
77 [13887] = 38836,
|
Zerotorescue@13
|
78 [13890] = 38837,
|
Zerotorescue@13
|
79 [13898] = 38838,
|
Zerotorescue@13
|
80 [13905] = 38839,
|
Zerotorescue@13
|
81 [13915] = 38840,
|
Zerotorescue@13
|
82 [13917] = 38841,
|
Zerotorescue@13
|
83 [13931] = 38842,
|
Zerotorescue@13
|
84 [13933] = 38843,
|
Zerotorescue@13
|
85 [13935] = 38844,
|
Zerotorescue@13
|
86 [13937] = 38845,
|
Zerotorescue@13
|
87 [13939] = 38846,
|
Zerotorescue@13
|
88 [13941] = 38847,
|
Zerotorescue@13
|
89 [13943] = 38848,
|
Zerotorescue@13
|
90 [13945] = 38849,
|
Zerotorescue@13
|
91 [13947] = 38850,
|
Zerotorescue@13
|
92 [13948] = 38851,
|
Zerotorescue@13
|
93 [20008] = 38852,
|
Zerotorescue@13
|
94 [20009] = 38853,
|
Zerotorescue@13
|
95 [20010] = 38854,
|
Zerotorescue@13
|
96 [20011] = 38855,
|
Zerotorescue@13
|
97 [20012] = 38856,
|
Zerotorescue@13
|
98 [20013] = 38857,
|
Zerotorescue@13
|
99 [20014] = 38858,
|
Zerotorescue@13
|
100 [20015] = 38859,
|
Zerotorescue@13
|
101 [20016] = 38860,
|
Zerotorescue@13
|
102 [20017] = 38861,
|
Zerotorescue@13
|
103 [20020] = 38862,
|
Zerotorescue@13
|
104 [20023] = 38863,
|
Zerotorescue@13
|
105 [20024] = 38864,
|
Zerotorescue@13
|
106 [20025] = 38865,
|
Zerotorescue@13
|
107 [20026] = 38866,
|
Zerotorescue@13
|
108 [20028] = 38867,
|
Zerotorescue@13
|
109 [20029] = 38868,
|
Zerotorescue@13
|
110 [20030] = 38869,
|
Zerotorescue@13
|
111 [20031] = 38870,
|
Zerotorescue@13
|
112 [20032] = 38871,
|
Zerotorescue@13
|
113 [20033] = 38872,
|
Zerotorescue@13
|
114 [20034] = 38873,
|
Zerotorescue@13
|
115 [20035] = 38874,
|
Zerotorescue@13
|
116 [20036] = 38875,
|
Zerotorescue@13
|
117 [21931] = 38876,
|
Zerotorescue@13
|
118 [22749] = 38877,
|
Zerotorescue@13
|
119 [22750] = 38878,
|
Zerotorescue@13
|
120 [23799] = 38879,
|
Zerotorescue@13
|
121 [23800] = 38880,
|
Zerotorescue@13
|
122 [23801] = 38881,
|
Zerotorescue@13
|
123 [23802] = 38882,
|
Zerotorescue@13
|
124 [23803] = 38883,
|
Zerotorescue@13
|
125 [23804] = 38884,
|
Zerotorescue@13
|
126 [25072] = 38885,
|
Zerotorescue@13
|
127 [25073] = 38886,
|
Zerotorescue@13
|
128 [25074] = 38887,
|
Zerotorescue@13
|
129 [25078] = 38888,
|
Zerotorescue@13
|
130 [25079] = 38889,
|
Zerotorescue@13
|
131 [25080] = 38890,
|
Zerotorescue@13
|
132 [25081] = 38891,
|
Zerotorescue@13
|
133 [25082] = 38892,
|
Zerotorescue@13
|
134 [25083] = 38893,
|
Zerotorescue@13
|
135 [25084] = 38894,
|
Zerotorescue@13
|
136 [25086] = 38895,
|
Zerotorescue@13
|
137 [27837] = 38896,
|
Zerotorescue@13
|
138 [27899] = 38897,
|
Zerotorescue@13
|
139 [27905] = 38898,
|
Zerotorescue@13
|
140 [27906] = 38899,
|
Zerotorescue@13
|
141 [27911] = 38900,
|
Zerotorescue@13
|
142 [27913] = 38901,
|
Zerotorescue@13
|
143 [27914] = 38902,
|
Zerotorescue@13
|
144 [27917] = 38903,
|
Zerotorescue@13
|
145 [27944] = 38904,
|
Zerotorescue@13
|
146 [27945] = 38905,
|
Zerotorescue@13
|
147 [27946] = 38906,
|
Zerotorescue@13
|
148 [27947] = 38907,
|
Zerotorescue@13
|
149 [27948] = 38908,
|
Zerotorescue@13
|
150 [27950] = 38909,
|
Zerotorescue@13
|
151 [27954] = 38910,
|
Zerotorescue@13
|
152 [27957] = 38911,
|
Zerotorescue@13
|
153 [27958] = 38912,
|
Zerotorescue@13
|
154 [27960] = 38913,
|
Zerotorescue@13
|
155 [27961] = 38914,
|
Zerotorescue@13
|
156 [27962] = 38915,
|
Zerotorescue@13
|
157 [27967] = 38917,
|
Zerotorescue@13
|
158 [27968] = 38918,
|
Zerotorescue@13
|
159 [27971] = 38919,
|
Zerotorescue@13
|
160 [27972] = 38920,
|
Zerotorescue@13
|
161 [27975] = 38921,
|
Zerotorescue@13
|
162 [27977] = 38922,
|
Zerotorescue@13
|
163 [27981] = 38923,
|
Zerotorescue@13
|
164 [27982] = 38924,
|
Zerotorescue@13
|
165 [27984] = 38925,
|
Zerotorescue@13
|
166 [28003] = 38926,
|
Zerotorescue@13
|
167 [28004] = 38927,
|
Zerotorescue@13
|
168 [33990] = 38928,
|
Zerotorescue@13
|
169 [33991] = 38929,
|
Zerotorescue@13
|
170 [33992] = 38930,
|
Zerotorescue@13
|
171 [33993] = 38931,
|
Zerotorescue@13
|
172 [33994] = 38932,
|
Zerotorescue@13
|
173 [33995] = 38933,
|
Zerotorescue@13
|
174 [33996] = 38934,
|
Zerotorescue@13
|
175 [33997] = 38935,
|
Zerotorescue@13
|
176 [33999] = 38936,
|
Zerotorescue@13
|
177 [34001] = 38937,
|
Zerotorescue@13
|
178 [34002] = 38938,
|
Zerotorescue@13
|
179 [34003] = 38939,
|
Zerotorescue@13
|
180 [34004] = 38940,
|
Zerotorescue@13
|
181 [34005] = 38941,
|
Zerotorescue@13
|
182 [34006] = 38942,
|
Zerotorescue@13
|
183 [34007] = 38943,
|
Zerotorescue@13
|
184 [34008] = 38944,
|
Zerotorescue@13
|
185 [34009] = 38945,
|
Zerotorescue@13
|
186 [34010] = 38946,
|
Zerotorescue@13
|
187 [42620] = 38947,
|
Zerotorescue@13
|
188 [42974] = 38948,
|
Zerotorescue@13
|
189 [44383] = 38949,
|
Zerotorescue@13
|
190 [44483] = 38950,
|
Zerotorescue@13
|
191 [44484] = 38951,
|
Zerotorescue@13
|
192 [44488] = 38953,
|
Zerotorescue@13
|
193 [44489] = 38954,
|
Zerotorescue@13
|
194 [44492] = 38955,
|
Zerotorescue@13
|
195 [44494] = 38956,
|
Zerotorescue@13
|
196 [44500] = 38959,
|
Zerotorescue@13
|
197 [44506] = 38960,
|
Zerotorescue@13
|
198 [44508] = 38961,
|
Zerotorescue@13
|
199 [44509] = 38962,
|
Zerotorescue@13
|
200 [44510] = 38963,
|
Zerotorescue@13
|
201 [44513] = 38964,
|
Zerotorescue@13
|
202 [44524] = 38965,
|
Zerotorescue@13
|
203 [44528] = 38966,
|
Zerotorescue@13
|
204 [44529] = 38967,
|
Zerotorescue@13
|
205 [44555] = 38968,
|
Zerotorescue@13
|
206 [44556] = 38969,
|
Zerotorescue@13
|
207 [60616] = 38971,
|
Zerotorescue@13
|
208 [44576] = 38972,
|
Zerotorescue@13
|
209 [44582] = 38973,
|
Zerotorescue@13
|
210 [44584] = 38974,
|
Zerotorescue@13
|
211 [44588] = 38975,
|
Zerotorescue@13
|
212 [44589] = 38976,
|
Zerotorescue@13
|
213 [44590] = 38977,
|
Zerotorescue@13
|
214 [44591] = 38978,
|
Zerotorescue@13
|
215 [44592] = 38979,
|
Zerotorescue@13
|
216 [44593] = 38980,
|
Zerotorescue@13
|
217 [44595] = 38981,
|
Zerotorescue@13
|
218 [44596] = 38982,
|
Zerotorescue@13
|
219 [44598] = 38984,
|
Zerotorescue@13
|
220 [60623] = 38986,
|
Zerotorescue@13
|
221 [44616] = 38987,
|
Zerotorescue@13
|
222 [44621] = 38988,
|
Zerotorescue@13
|
223 [44623] = 38989,
|
Zerotorescue@13
|
224 [44625] = 38990,
|
Zerotorescue@13
|
225 [44629] = 38991,
|
Zerotorescue@13
|
226 [44630] = 38992,
|
Zerotorescue@13
|
227 [44631] = 38993,
|
Zerotorescue@13
|
228 [44633] = 38995,
|
Zerotorescue@13
|
229 [44635] = 38997,
|
Zerotorescue@13
|
230 [46578] = 38998,
|
Zerotorescue@13
|
231 [46594] = 38999,
|
Zerotorescue@13
|
232 [47051] = 39000,
|
Zerotorescue@13
|
233 [47672] = 39001,
|
Zerotorescue@13
|
234 [47766] = 39002,
|
Zerotorescue@13
|
235 [47898] = 39003,
|
Zerotorescue@13
|
236 [47899] = 39004,
|
Zerotorescue@13
|
237 [47900] = 39005,
|
Zerotorescue@13
|
238 [47901] = 39006,
|
Zerotorescue@13
|
239 [59625] = 43987,
|
Zerotorescue@13
|
240 [60606] = 44449,
|
Zerotorescue@13
|
241 [60621] = 44453,
|
Zerotorescue@13
|
242 [60653] = 44455,
|
Zerotorescue@13
|
243 [60609] = 44456,
|
Zerotorescue@13
|
244 [60663] = 44457,
|
Zerotorescue@13
|
245 [60668] = 44458,
|
Zerotorescue@13
|
246 [60691] = 44463,
|
Zerotorescue@13
|
247 [60692] = 44465,
|
Zerotorescue@13
|
248 [60707] = 44466,
|
Zerotorescue@13
|
249 [60714] = 44467,
|
Zerotorescue@13
|
250 [60763] = 44469,
|
Zerotorescue@13
|
251 [60767] = 44470,
|
Zerotorescue@13
|
252 [59621] = 44493,
|
Zerotorescue@13
|
253 [59619] = 44497,
|
Zerotorescue@13
|
254 [44575] = 44815,
|
Zerotorescue@13
|
255 [62256] = 44947,
|
Zerotorescue@13
|
256 [62948] = 45056,
|
Zerotorescue@13
|
257 [62959] = 45060,
|
Zerotorescue@13
|
258 [63746] = 45628,
|
Zerotorescue@13
|
259 [64441] = 46026,
|
Zerotorescue@13
|
260 [64579] = 46098,
|
Zerotorescue@13
|
261 [71692] = 50816,
|
Zerotorescue@13
|
262 };--enchantId=scrollId
|
Zerotorescue@13
|
263
|
Zerotorescue@13
|
264 function mod:OnEnable()
|
Zerotorescue@13
|
265 -- Register our own slash commands
|
Zerotorescue@13
|
266 addon:RegisterSlash(function()
|
Zerotorescue@13
|
267 self:QueueAll();
|
Zerotorescue@13
|
268 end, "q", "que", "queue");
|
Zerotorescue@14
|
269
|
Zerotorescue@14
|
270 self:RegisterMessage("IM_QUEUE_ALL");
|
Zerotorescue@14
|
271 self:RegisterMessage("IM_QUEUE_GROUP");
|
Zerotorescue@14
|
272 end
|
Zerotorescue@14
|
273
|
Zerotorescue@14
|
274 function mod:IM_QUEUE_ALL()
|
Zerotorescue@14
|
275 self:QueueAll();
|
Zerotorescue@14
|
276 end
|
Zerotorescue@14
|
277
|
Zerotorescue@14
|
278 function mod:IM_QUEUE_GROUP(event, groupName)
|
Zerotorescue@14
|
279 self:QueueGroup(groupName);
|
Zerotorescue@13
|
280 end
|
Zerotorescue@13
|
281
|
Zerotorescue@13
|
282 function mod:QueueAll()
|
Zerotorescue@14
|
283 local playerName = UnitName("player");
|
Zerotorescue@14
|
284
|
Zerotorescue@14
|
285 -- Go through all groups
|
Zerotorescue@14
|
286 for groupName, values in pairs(addon.db.global.groups) do
|
Zerotorescue@14
|
287 local trackAt = (values.trackAtCharacters or (values.trackAtCharacters == nil and addon.db.global.defaults.trackAtCharacters));
|
Zerotorescue@14
|
288
|
Zerotorescue@14
|
289 if trackAt[playerName] then
|
Zerotorescue@14
|
290 self:QueueGroup(groupName);
|
Zerotorescue@13
|
291 end
|
Zerotorescue@13
|
292 end
|
Zerotorescue@13
|
293 end
|
Zerotorescue@13
|
294
|
Zerotorescue@13
|
295 function mod:QueueGroup(groupName)
|
Zerotorescue@14
|
296 if not addon.db.global.groups[groupName] then
|
Zerotorescue@14
|
297 print(("Tried to queue items from a group named \"%s\", but no such group exists."):format(groupName));
|
Zerotorescue@14
|
298 return;
|
Zerotorescue@14
|
299 end
|
Zerotorescue@14
|
300
|
Zerotorescue@14
|
301 local temp = {};
|
Zerotorescue@13
|
302
|
Zerotorescue@13
|
303 -- Go through all trade skills for the profession
|
Zerotorescue@13
|
304 for i = 1, GetNumTradeSkills() do
|
Zerotorescue@13
|
305 -- Process every single tradeskill
|
Zerotorescue@14
|
306 self:ProcessTradeSkill(i, groupName, temp);
|
Zerotorescue@14
|
307 end
|
Zerotorescue@14
|
308
|
Zerotorescue@14
|
309 for itemId, _ in pairs(addon.db.global.groups[groupName].items) do
|
Zerotorescue@14
|
310 if not temp[itemId] then
|
Zerotorescue@14
|
311 local itemLink = select(2, GetItemInfo(itemId));
|
Zerotorescue@14
|
312 print("Couldn't queue " .. itemLink);
|
Zerotorescue@14
|
313 end
|
Zerotorescue@13
|
314 end
|
Zerotorescue@13
|
315 end
|
Zerotorescue@13
|
316
|
Zerotorescue@14
|
317 function mod:ProcessTradeSkill(i, groupName, temp)
|
Zerotorescue@13
|
318 -- Try to retrieve the itemlink, this will be nil if current item is a group instead
|
Zerotorescue@13
|
319 local itemLink = GetTradeSkillItemLink(i);
|
Zerotorescue@13
|
320
|
Zerotorescue@13
|
321 if itemLink then
|
Zerotorescue@13
|
322 local itemId = addon:GetItemId(itemLink);
|
Zerotorescue@13
|
323 if not itemId then
|
Zerotorescue@13
|
324 -- If this isn't an item, it can only be an enchant instead
|
Zerotorescue@13
|
325 itemId = tonumber(itemLink:match("|Henchant:([-0-9]+)|h"));
|
Zerotorescue@13
|
326
|
Zerotorescue@13
|
327 itemId = scrollIds[itemId]; -- change enchantIds into scrollIds
|
Zerotorescue@13
|
328 end
|
Zerotorescue@13
|
329
|
Zerotorescue@13
|
330 if addon.db.global.groups[groupName].items[itemId] then
|
Zerotorescue@13
|
331 -- This item is in this group, queue it!
|
Zerotorescue@13
|
332
|
Zerotorescue@14
|
333 if temp then
|
Zerotorescue@14
|
334 -- Remember which items have been processed
|
Zerotorescue@14
|
335 temp[itemId] = true;
|
Zerotorescue@14
|
336 end
|
Zerotorescue@13
|
337
|
Zerotorescue@14
|
338 local currentStock = addon:GetItemCount(itemId);
|
Zerotorescue@14
|
339 if currentStock >= 0 then
|
Zerotorescue@14
|
340 -- Current stock will be -1 when no itemcount addon was found
|
Zerotorescue@14
|
341 local amount = ( addon:GetOptionByKey(groupName, "restockTarget") - currentStock );
|
Zerotorescue@13
|
342
|
Zerotorescue@14
|
343 if amount > 0 then
|
Zerotorescue@14
|
344 self:Queue(i, amount);
|
Zerotorescue@14
|
345
|
Zerotorescue@14
|
346 print("Queued " .. amount .. " of " .. itemLink);
|
Zerotorescue@14
|
347 end
|
Zerotorescue@14
|
348 else
|
Zerotorescue@14
|
349 print("No usable itemcount addon found.");
|
Zerotorescue@13
|
350 end
|
Zerotorescue@13
|
351 end
|
Zerotorescue@13
|
352 end
|
Zerotorescue@13
|
353 end
|
Zerotorescue@13
|
354
|
Zerotorescue@13
|
355 function mod:Queue(tradeSkillIndex, amount)
|
Zerotorescue@13
|
356 tradeSkillIndex = tonumber(tradeSkillIndex);
|
Zerotorescue@13
|
357 amount = tonumber(amount);
|
Zerotorescue@13
|
358
|
Zerotorescue@13
|
359 if not tradeSkillIndex or not amount then return; end
|
Zerotorescue@13
|
360
|
Zerotorescue@13
|
361 if addon.supportedAddons.crafting[addon.db.global.defaults.craftingAddon] then
|
Zerotorescue@13
|
362 -- Try to use the default auction pricing addon
|
Zerotorescue@13
|
363
|
Zerotorescue@13
|
364 return addon.supportedAddons.crafting[addon.db.global.defaults.craftingAddon].Queue(tradeSkillIndex, amount);
|
Zerotorescue@13
|
365 else
|
Zerotorescue@13
|
366 -- Default not available, get the first one then
|
Zerotorescue@13
|
367
|
Zerotorescue@13
|
368 for name, value in pairs(addon.supportedAddons.crafting) do
|
Zerotorescue@13
|
369 if value.IsEnabled() then
|
Zerotorescue@13
|
370 return value.Queue(tradeSkillIndex, amount);
|
Zerotorescue@13
|
371 end
|
Zerotorescue@13
|
372 end
|
Zerotorescue@13
|
373 end
|
Zerotorescue@13
|
374
|
Zerotorescue@13
|
375 return -2;
|
Zerotorescue@13
|
376 end
|