What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

[Plugin] TidyBags 3.0 Reloaded!

Any chance to add the function : each 5 cloth --> convert to 1 bolt
 
You could but now one here will know how to use it nore will they want to :P
Git allows for SVN checkouts as far as I'm aware so I don't see a problem there ;)
However Git and Windows 8 x64 doesn't want to co-operate, so it's gonna be a while till I solve this shit locally (was doing fine under Vista and 7).

It will gonna be awesome if you can add the possibility to use Sha-Touched Leather
You can add this yourself, since it's not a general item but a profession specific item.
Just add the itemID in the same list as the borean leather scraps (which don't require leatherworking to do it).
Don't forget to add a comma after the itemID of borean leather scraps if you add the sha touched leather underneath.

Any chance to add the function : each 5 cloth --> convert to 1 bolt
Same as with the leather, it's a profession item, and besides that is not a on-use function but actually requires to cast a spell (create a bolt of xxx).
So it's a different ballgame than what this plugin does currently.
 
just wondering if this could work similar to Loot Filter, I hate getting excess junk while i'm fishing because the majority of those Sealed Crates are worthless...I hate that none of the addon devs have caught up and released new ones.

Haven't been here for quite some time...
I've got a private version working with this feature, even though just for specific items (namely MoP fishing junk from crates ^^).
But got to convene with LiqidAtoR before i can post sth "official" as it requires a major do over for this plugin ...

---

Regarding the github naysayers ...
1. You CAN checkout via svn from github
2. If you don't have git or svn you can download any version of the code as a zip
3. Github makes developing the plugin easier and more open to collaborators, which would likely result in faster feature implementations.

It's actually pretty neat and i don't understand why no one else is using it for their uncompiled plugin code, aside the possible anonymity (which ever way that word is pronounced) issue when already having a github account and using you real-name...

Just saying ...
 
Will/can this have the possibility of deleting gray items as well? Just wondering as I'm trying to minimize my plugin usage. Thank in advance!
 
For leatherworker, If you want to use 5 Sha-Touched Leather to do one Exotic Leather just edit TidyBags.cs like this (do not forget to add a coma after id 33567)

private HashSet<uint> _itemUseOnFive = new HashSet<uint>() {
33567, // Borean Leather Scraps
72162 // Sha-Touched Leather
};
 
Last edited:
Revision 3.6.1.6: Added MoP Archaeology items to be crated and some other stuff I forgot to write down ^^.
As Always available from the first post.

I'm also happy to inform that a SVN is in the works now.
I just need to move some stuff I don't wish to share from that account to a private account and still keep things workable :)
So few more days of mucking around and then a SVN will be made available (GitHub most likely).
 
I managed to cleanup most of my repo's, so here's the link everyone's been asking for.

SVN url: https://github.com/LiquidAtoR/TidyBags
You can access GitHub with a regular SVN client.

And to prevent anything unwanted about my Repo's (if you decide to browse trough them)...
I'm not gonna release the rest unless I feel like or want to, so don't bother asking about it.
Most of the plugins I wrote for myself, and not for the masses.
 
Last edited:
Modified a litle bit, so the plugin removes auto the garbage I fish up.

namespace PluginTidyBags3
{
using Styx;
using Styx.Common;
using Styx.Common.Helpers;
using Styx.CommonBot.Frames;
using Styx.CommonBot.Inventory;
using Styx.CommonBot.Profiles;
using Styx.Helpers;
using Styx.Pathing;
using Styx.Plugins;
using Styx.WoWInternals;
using Styx.WoWInternals.WoWObjects;

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Windows.Forms;
using System.Windows.Media;
using System.Xml.Linq;

public class TidyBags3 : HBPlugin
{
public override string Name { get { return "Tidy Bags 3.6 Reloaded"; } }
public override string Author { get { return "LiquidAtoR"; } }
public override Version Version { get { return new Version(3,6,1,4); } }

private HashSet<uint> _itemUseOnOne = new HashSet<uint>() {
3352, // Ooze-covered Bag
6351, // Dented Crate
6352, // Waterlogged Crate
6353, // Small Chest
6356, // Battered Chest
6357, // Sealed Crate
5523, // Small Barnacled Clam
5524, // Thick-shelled Clam
7973, // Big-mouth Clam
13874, // Heavy Crate
20708, // Tightly Sealed Trunk
20766, // Slimy Bag
20767, // Scum Covered Bag
20768, // Oozing Bag
21113, // Watertight Trunk
21150, // Iron Bound Trunk
21228, // Mithril Bound Trunk
21746, // Lucky Red Envelope (Lunar Festival item)
24476, // Jaggal Clam
24881, // Satchel of Helpful Goods (5-15 1st)
24889, // Satchel of Helpful Goods (5-15 others)
24882, // Satchel of Helpful Goods (15-25 1st)
24890, // Satchel of Helpful Goods (15-25 others)
27481, // Heavy Supply Crate
27511, // Inscribed Scrollcase
27513, // Curious Crate
32724, // Sludge Covered Object
35945, // Brilliant Glass (Daily Cooldown for Jewelcrafting - The Burning Crusade Edition)
36781, // Darkwater Clam
44475, // Reinforced Crate
44663, // Abandoned Adventurer's Satchel
44700, // Brooding Darkwater Clam
45909, // Giant Darkwater Clam
49655, // Lovely Charm (Love is in the Air item)
51999, // Satchel of Helpful Goods (iLevel 25)
52000, // Satchel of Helpful Goods (31)
52001, // Satchel of Helpful Goods (41)
52002, // Satchel of Helpful Goods (50)
52003, // Satchel of Helpful Goods (57)
52004, // Satchel of Helpful Goods (62)
52005, // Satchel of Helpful Goods (66)
52340, // Abyssal Clam
61387, // Hidden Stash
62242, // Icy Prism (Daily Cooldown for Jewelcrafting - Wrath Edition)
64657, // Canopic Jar (Archaeology Tol'vir relic)
67248, // Satchel of Helpful Goods (39)
67250, // Satchel of Helpful Goods (85)
67495, // Strange Bloated Stomach (Cataclysm Skinning)
67539, // Tiny Treasure Chest
67597, // Sealed Crate (level 85 version)
69903, // Satchel of Exotic Mysteries (LFD - Extra Reward)
72201, // Plump Intestines (MoP Skinning)
73478, // Fire Prism (Daily Cooldown for Jewelcrafting - Cataclysm Edition)
78890, // Crystalline Geode (Dragon Soul Raid - Normal 10/25 every bossloot)
78891, // Elementium-Coated Geode (Dragon Soul Raid - Normal 10/25 Deathwing Kill)
78892, // Perfect Geode (Dragon Soul Raid - Heroic Hardmode 10/25 Deathwing Kill)
78897, // Pouch o' Tokens (5 Darkmoon Faire Game Coins)
78898, // Sack o' Tokens (20 Darkmoon Faire Game Coins)
78899, // Pouch o' Tokens (5 Darkmoon Faire Game Coins)
78900, // Pouch o' Tokens (5 Darkmoon Faire Game Coins)
78901, // Pouch o' Tokens (5 Darkmoon Faire Game Coins)
78902, // Pouch o' Tokens (5 Darkmoon Faire Game Coins)
78903, // Pouch o' Tokens (5 Darkmoon Faire Game Coins)
78905, // Sack o' Tokens (20 Darkmoon Faire Game Coins)
78906, // Sack o' Tokens (20 Darkmoon Faire Game Coins)
78907, // Sack o' Tokens (20 Darkmoon Faire Game Coins)
78908, // Sack o' Tokens (20 Darkmoon Faire Game Coins)
78909, // Sack o' Tokens (20 Darkmoon Faire Game Coins)
78930, // Sealed Crate (around the Darkmoon Faire Island)
87391, // Plundered Treasure (Luck of the Lotus Buff)
88496, // Sealed Crate (MoP version)
89613, // Cache of Treasures
89810, // Bounty of a Sundered Land (LFR Contains 25G if you don't win gear)
90716 // Good Fortune (when using a Lucky Charm on a boss for loot)
};

private HashSet<uint> _itemUseOnFive = new HashSet<uint>() {
33567, // Borean Leather Scraps
72162 // Sha touched leather
};

private HashSet<uint> _itemUseOnTen = new HashSet<uint>() {
22572, // Mote of Air
22573, // Mote of Earth
22574, // Mote of Fire
22575, // Mote of Life
22576, // Mote of Mana
22577, // Mote of Shadow
22578, // Mote of Water
37700, // Crystallized Air
37701, // Crystallized Earth
37702, // Crystallized Fire
37703, // Crystallized Shadow
37704, // Crystallized Life
37705, // Crystallized Water
86547, // Skyshard
89112 // Mote of Harmony
};

private HashSet<uint> _itemRequiresSleep = new HashSet<uint>() {
61387, // Hidden Stash
67495, // Strange Bloated Stomach
67539, // Tiny Treasure Chest
72201, // Plump Intestines
87391, // Plundered Treasure (Luck of the Lotus Buff)
89613, // Cache of Treasures
90716, // Good Fortune
72162 // sha touched leather
};

private HashSet<uint> _destroyItems = new HashSet<uint>() {
45196, //Tattered Cloth
45189, //Torn Sail
45188, //Whitered Kelp
45195, //Empty Rum Botlle
45191, //Empty Clam
45194, //Tangled Fishing Line
45201, //Rock
45190, //Driftwood
45200, //Sickly Fish
45198, //Weeds
44941, //Fresh-Squeezed Limeade
45197, //Tree Branch
45199 //Old Boot
};
private static Stopwatch sw = new Stopwatch();

public override void Pulse()
{
if (StyxWoW.Me.IsActuallyInCombat
|| StyxWoW.Me.Mounted
|| StyxWoW.Me.IsDead
|| StyxWoW.Me.IsGhost
//|| Styx.CommonBot.LootTargeting.LootMobs
) {
return;
}

if (!sw.IsRunning) {
sw.Start();
}

if (sw.Elapsed.TotalSeconds > 1) { // throttle to 1s
foreach (WoWItem item in ObjectManager.GetObjectsOfType<WoWItem>()) { // iterate over every item
if (item != null && item.BagSlot != -1) { // check if item exists and is in bag
if (_itemUseOnFive.Contains(item.Entry)) { // stacks of 5
if (item.StackCount >= 5) {
this.useItem(item);
}
} else if (_itemUseOnTen.Contains(item.Entry)) { // stacks of 10
if (item.StackCount >= 10) {
this.useItem(item);
}
} else if (_itemUseOnOne.Contains(item.Entry)) { // stacks of 1
if (item.StackCount >= 1) {
this.useItem(item);
}
} else if (_destroyItems.Contains(item.Entry)) {
this.destroyItem(item);
}
}
}

StyxWoW.SleepForLagDuration();
sw.Reset();
sw.Start();
}
}

private void useItem(WoWItem item)
{
Logging.Write(LogLevel.Normal, Colors.DarkRed, "[{0} {1}]: Using {2} we have {3}", this.Name, this.Version, item.Name, item.StackCount);

if (_itemRequiresSleep.Contains(item.Entry)) {
// some (soulbound) items require an additional sleep to prevent a loot bug
StyxWoW.SleepForLagDuration();
}
Lua.DoString("UseItemByName(\"" + item.Name + "\")");
StyxWoW.SleepForLagDuration();
}
private void destroyItem(WoWItem item)
{
item.PickUp();
Lua.DoString("DeleteCursorItem()");
}
}
}

I could write a new plugin, but why not use an existing one that already monitors our bags.
 
I have noticed when my toon is skining and tidy bags tries to open or combine items they turn gray and you cannot interact with them. I know this is a wow issue not a pluggin or HB issue. Is there any way that if not in combat it pauses what your doing and opens or combines things at that time to prevent this.
 
Modified a litle bit, so the plugin removes auto the garbage I fish up.

I could write a new plugin, but why not use an existing one that already monitors our bags.
It's already integrated in the new mockup of TidyBags, but as we want to expand on it's functionality and use, it's gonna be named differently ;)

I have noticed when my toon is skining and tidy bags tries to open or combine items they turn gray and you cannot interact with them. I know this is a wow issue not a pluggin or HB issue. Is there any way that if not in combat it pauses what your doing and opens or combines things at that time to prevent this.

Look for:
Code:
//|| Styx.CommonBot.LootTargeting.LootMobs
Replace with:
Code:
|| Styx.CommonBot.LootTargeting.SkinMobs
And let me know if this works for you please.
The 2 forward dashes are indeed removed to activate that line of code I just gave.

This is a issue we are well aware off, but so far our attempts have been torpedoed due to functions not working as intended.
 
Last edited:
Look for:
Code:
//|| Styx.CommonBot.LootTargeting.LootMobs
Replace with:
Code:
|| Styx.CommonBot.LootTargeting.SkinMobs
And let me know if this works for you please.
The 2 forward dashes are indeed removed to activate that line of code I just gave.

This is a issue we are well aware off, but so far our attempts have been torpedoed due to functions not working as intended.
Okay I removed the // as you asked for than it never opens the Plum Intestines at all
 
This worked great for about 2 hours, then stopped working after the bot mailed stuff to my bankalt. i restarted tidybags, after that didn't work i restarted hb. no such luck...any ideas? i'm filling up on crystallized stuff from WoTLK!
 
Allthough the name of this plugin suggests different, TidyBags is meant to unpack items (clams, crates ed), combine items (scraps, eternals ed) etc.
Not to sift trough your inventory and delete stuff "deemed unworthy".
That's a whole other ballgame.

thank you so much for this. i was scared that you might implement it... which would involve yet another config screen... i love that tidybags doesnt need a config screen, since everything it does falls under the "of course i want you to do that" heading.


one minor glitch tho. doesn't crate Pandaren Tea Set.

*edit*
adding:

79896, // Pandaren Tea Set (Archaeology)

as line 256 fixed it for me, and kept the list in numerical order.
*edit*
 
Last edited:
This worked great for about 2 hours, then stopped working after the bot mailed stuff to my bankalt. i restarted tidybags, after that didn't work i restarted hb. no such luck...any ideas? i'm filling up on crystallized stuff from WoTLK!
In all honesty I don't have any idea. Maybe delete the compiled TidyBags assembly from the respective folder and try again?

thank you so much for this. i was scared that you might implement it... which would involve yet another config screen... i love that tidybags doesnt need a config screen, since everything it does falls under the "of course i want you to do that" heading.


one minor glitch tho. doesn't crate Pandaren Tea Set.

*edit*
adding:

79896, // Pandaren Tea Set (Archaeology)

as line 256 fixed it for me, and kept the list in numerical order.
*edit*
Will add this in the next revision, must've missed it in the list.
Thanks for reporting it.

TidyBags will be merged in the future in a new plugin which we are mocking up at the moment.
In this plugin I want to consolidate all the plugins I have to date (as far as I like to release them publicly).
There most likely will be a config screen, but essentially it will work as TidyBags out of the box (you just have to configurate if you want the additional plugings).
Reason for this is that there's too many plugins in our opinion.
Consolidating them into one makes sense to us.

Not to worry though, Tidybags will keep existing as I don't want to force people to use something new while the old does what they want ;)

svn link down ?

get a 404 error
Not that I'm aware. Even if it is down, I don't have any influence on it (since it's a external repo).
 
Last edited:
Not only removing the first 2 forward slashes, look at the last part too :)
It's changed from LootMobs to SkinMobs
I did as you said this time, It doesnt even work at all now, doesnt open any bag. I redownloaded a fresh one and the same thing i changed
//|| Styx.CommonBot.LootTargeting.LootMobs to || Styx.CommonBot.LootTargeting.SkinMobs
 
I did as you said this time, It doesnt even work at all now, doesnt open any bag. I redownloaded a fresh one and the same thing i changed
//|| Styx.CommonBot.LootTargeting.LootMobs to || Styx.CommonBot.LootTargeting.SkinMobs
I will have a look for something else in the API to prevent while skinning or looting, but it seems those parts of the API are not working as intended since they Always return true (when I find a moment of time, am in renovation of a room in my house, walls bare to the bricks).
I have currently no idea if StyxWoW.Me.IsSkinning is a valid API item but that's the first item that comes to my mind to look for something that tells me I'm skinning, probably not ^^
Meanwhile just restore it in the old state and use the temporary workaround as described below.

Another option is to add something to the profile you are running.
Botanist posted an example a few pages back how to integrate this.
 
Last edited:
Thanks for all your help. You and all code writes are appricated for all your work, free at that! If you need help testing anything again I would be glad to give back anyway I can!
 
Back
Top