Running around and questing, doing dungeons, and causing general mayhem, looting and pillaging, I have found good need for the Automagic Mail loader. But, I would like to add a few feature requests to this application:
- Create more groups - Ore and Stones - Leather & Hides & Scales - - Add pearls to the gem group. - Add group with food ingredients from which you cannot skill, with option to add the ones you skill from (Meats, fishes etc.) - Option to put in an optional standard name for each group - i.e. Gems to "insert-name-here" - which will autoinsert name in the "To" field at button press.
More advanced features could be: - Option to create and name your own groups, and add items to it, like you would to the Automagic Sell list (In dungeons and general low level questing on alts, I seem to get alot of blasting powers and such. Would be nice to be able to quickly send all to my Engineer..) - Ability to save/load/copy these lists to other characters - so they all send to the same person.
Not sure if items such as Elemental Waters, Elemental fire, and similar enchanting items are under the "Chant Mats"..
Anyways, thanks for a great addition to the Auctioneer pack.
Having all professions covered across a number of 85's, I also regularly need to send items based on professions to my alts. I was never aware of what functionality Auctioneer Suite actually added, until I decided to modify exactly this functionality in the AutoMagic Mail Loader specifically for Cloth items. I searched for the addon, modified the code to add Cloth, and then searched around the site to find a proper way to put this and ran into your post and decided to add Ore & Stones as well.
In the file "Auc-Advanced\Modules\Auc-Util-AutoMagic\Mail-GUI.lua" : Add the following lines just before the last 2 lines ( included here, so skip them ) :
Now, to cater for the extra 2 buttons, modify the AutoMagic : Mail window size : In file Mail-GUI.lua, line 51, modify the window height from 75 to 97 :
In the file Core.lua, add the following lists defining the Cloth and Ore / Stone types. Around line 243, you'll see the following 2 lines below. Insert the code just BEFORE this. This is just after the herbs list ending with WHIPTAIL :
--what armor each class can use localized local _, CLOTH, LEATHER, MAIL, PLATE = GetAuctionItemSubClasses(2) --only way I found to get a localized subtype
local isOre = { [2770] = true, -- Copper Ore [2771] = true, -- Tin Ore [2772] = true, -- Iron Ore [2775] = true, -- Silver Ore [2776] = true, -- Gold Ore [3858] = true, -- Mithril Ore [7911] = true, -- Truesilver Ore [10620] = true, -- Thorium Ore [11370] = true, -- Dark Iron Ore [23424] = true, -- Fel Iron Ore [23425] = true, -- Adamantite Ore [23426] = true, -- Khorium Ore [23427] = true, -- Eternium Ore [32464] = true, -- Nethercite Ore ( used for rep, but can be placed in mining bags ) [36909] = true, -- Kobalt Ore [36910] = true, -- Titanium Ore [36912] = true, -- Saronite Ore
--Cataclysm [52184] = true, -- Black Iron Ore ( not in-game yet, possibly removed ) [52185] = true, -- Elementium Ore [53038] = true, -- Obsidium Ore }
local isStone = { [2835] = true, -- Rough Stone [2836] = true, -- Coarse Stone [2838] = true, -- Heavy Stone [7912] = true, -- Solid Stone [12365] = true, -- Dense Stone [12809] = true, -- Guardian Stone ( not really mined, but classed so )
--Cataclysm }
This defines the list of Cloth, Stone and Ores. I kept Ores and Stones in seperate lists, as they could be re-used.
More code below to add just before the 2 lines below, also in Core.lua. This is just after the lib.herbAction function :
--Searches for reason and returns values if found nil other wise. --Consolidates code into one function instead of 5-6 places that need editing/maintaining
New code : -- start of new code
function lib.clothAction() MailFrameTab_OnClick(nil, 2) for bag=0,4 do for slot=1,GetContainerNumSlots(bag) do if (GetContainerItemLink(bag,slot)) then local itemLink, itemCount = GetContainerItemLink(bag,slot) if (itemLink == nil) then return end if itemCount == nil then _, itemCount = GetContainerItemInfo(bag, slot) end if itemCount == nil then itemCount = 1 end local _, itemID, _, _, _, _ = decode(itemLink) local itemName, _, itemRarity, _, _, _, _, _, _, _ = GetItemInfo(itemLink) if isCloth[ itemID ] then if (get("util.automagic.chatspam")) then print("AutoMagic has loaded", itemName, " because it is cloth.") end UseContainerItem(bag, slot) end end end end end
function lib.mineAction() MailFrameTab_OnClick(nil, 2) for bag=0,4 do for slot=1,GetContainerNumSlots(bag) do if (GetContainerItemLink(bag,slot)) then local itemLink, itemCount = GetContainerItemLink(bag,slot) if (itemLink == nil) then return end if itemCount == nil then _, itemCount = GetContainerItemInfo(bag, slot) end if itemCount == nil then itemCount = 1 end local _, itemID, _, _, _, _ = decode(itemLink) local itemName, _, itemRarity, _, _, _, _, _, _, _ = GetItemInfo(itemLink) if ( isStone[ itemID ] or isOre[ itemID ] ) then if (get("util.automagic.chatspam")) then print("AutoMagic has loaded", itemName, " because it is ore/stone.") end UseContainerItem(bag, slot) end end end end end
If you want to seperate stone or ore, rather use :
if isOre[ itemID ] then if (get("util.automagic.chatspam")) then print("AutoMagic has loaded", itemName, " because it is ore.")
or : if isStone[ itemID ] then if (get("util.automagic.chatspam")) then print("AutoMagic has loaded", itemName, " because it is stone.")
Hope this helps ( or makes sense for that matter ).
What would actually be ideal is is a set of lists that can be enabled / disabled in the config to auto-add buttons based on whether it is checked or not. This could also then autocalc the window size based on the number of 'active' checkboxes for item types.
Keep up the good work on the Auctioneer Suite guys. Anybody not using it is likely not playing.
I was thinking that the Mail Loader needed a bit of a revemp, something along the lines of making it easier to plug in new buttons - but so much else of Auctioneer needs work too, this would probably not be any time soon.
Meanwhile, adding that code sounds reasonable - make a ticket and we'll see if anyone has time to pick it up.
Brilliant to have this bit of code here. I have added buttons for Quest Items - i.e. Marks or Sargeras, Relics etc, Leather, Food items. Saves alot of clicking.
I am not someone who can write new code but I can understand how it works so thanks for posting the amendment.
Is it possible to hardcode (not good practice for a public module I know) a particular character into a particular action? I always send Cloth to my Tailor, Leather to my LW etc. Would be great if I could click the Leather button and it populates a character name.
I was unaware that I could make my own buttons---fabulous!!!!!! However, I'm kind of stumped on the food items. I made entries for meat, veggies, and fish, but it won't let me populate the list. Any ideas? I made one for leather and it works great! I want to make one for my tailor, too, but would like to get the cooking mats figured out first. Thanks again for such an awesome add-on! I am ordering a gift card for my husband from Cabela's off your site. Hope you get credit for it!
The configurable buttons are experimental - there does seem to a problem with drag/dropping items into the lists at the moment, will have a look at it. [edit] dragging (holding the mouse down) appears to work, but pickup and drop (two mouse clicks) doesn't work. There's a similar issue elsewhere in AutoMagic.
Also reminded me of the original issue, now that most of the MoP work is out of the way.
Just looked at mail loader myself. "Pigments" button is useless. There's NO WAY you could obtain pigments while not being a scribe yourself. They are just useless for everyone else. What I'm missing is "Ore" and "Cloth" default buttons. "cooking mats" would also make sense now.
'Pigments' button would be useful if you were buying pigments with an auction alt and sending them to your scribe - though admittedly that's probably not something I'd do myself. Certainly 'Ore', 'Cloth' and 'Cooking Mats', and a few other things, would be great additions. What might be nice is a load of (pre-coded) buttons to cater for different situations, and the ability to hide those you don't want.
Ravencrest AH don't have any pigments market. As I'm sure every other established AH. Pigments simply do not have a selling point, besides single occasional items that you have left after milling and making ink. I suppose, it is again the case of intentional usage pattern versus actual player needs, as with SearchUI. Said that, when I click "pigments", it does not load any pigments into mail, but do load Inferno Ink. But no other Ink. Seems very strange. Also, the buttons look weird. I don't know, how they intended to be, though...
Okay, I've had quite a thought about it, and I want to put it down for review. The problem number one with mail loader is that you are not loading random items into mail. No. You're loading items to be sent to specific character for specific purpose. The aim of loader should be this, not the items. The second problem is logically sequential to the first one. You want to specify a name of the character to send things to. From these two issues, arising the behavioral logic: 1. Remove all buttons from default loader frame, except those added for SearchUI purchasing reasons. It needs a third button, though: Milling. 2. Add a way to specify the name of a character for loading rule. 3. Instead of removed (as per #1) "Ore", "Herbs" etc. default loader buttons, add the same buttons to rule configuration interface to preload the rule with relevant items.
I was experimenting with the custom buttons... Great idea btw :)
I was wondering if there was a way to exclude items from the preset buttons. Specifically what I am trying to do is have automagic quit trying to send my ancient pandaran mining pick to be DE'd. (but, the concept applies to all items)
While i was looking at the config stuff, I thought it would be very cool, if I could also make it so it would only send full stacks of ore/herbs (or multiples of 5)