Git Product home page Git Product logo

grey-handling's Introduction

grey-handling

Install

This addon aims to make decisions about your objects easier when you have to throw them or give them away. It helps you know what are your cheapest objects faster and what trade your teammates would likely accept. If you're in a group of person that also have GreyHandling and Scrap, it will permit to stack your item optimally by sharing information with your teammates automatically. Something can be junk for you and not for someone else.

What does it do?

  • Displays the price (TSM's market value or vendor price), maximum stack of items, and number possessed by teammates in tooltip

brown-bag-presentation/combductor_integration.jpg

When you launch by hitting left CTRL while holding SHIFT :

  • Search in what you consider as junk (by default grey item)
  • If there is a worst item pick it (left click to throw or give)
  • If there isn't a worst item mark your two worst items in bag in red

The two worst items are the cheapest at the moment and the cheapest once fully stacked.

brown-bag-presentation/arkinventory_result.jpg

  • If you saw what your teammate looted items and one ore more mutually beneficial trades exist, suggest the one that stack the most value.

A mutually beneficial trade is an exchange that permits to free one bag space for everyone without throwing anything by keeping one kind of stackable grey instead of two. What is junk for someone might not be junk for someone else.

brown-bag-presentation/team_exchange.jpg

  • If someone also has GreyHandling in your group : exchange exact information about your junk items in order to offer better exchange suggestion.

examples/item_tooltip_group.jpg

Compatibility with other addons

  • Scrap If Scrap is installed, we can use your junk list (or not) as of July 2020 (*)
  • Peddler If Peddler is installed, we can use your marked for sell list (or not) as of July 2020 (*)
  • OneBag3 This addon did not need any integration (<3 OneBag3 dev, you're the best)
  • ArkInventory Working as of july 2020
  • Bagnon/Conductor Both working as of July 2020
  • VendorPrice You can disable GreyHandling item tooltip about prices, to not have twice the information.
  • Trade Skill Master If you have TSM installed, we use max of the market value -5% (Auction house cut) and the vendor price

In bag mark do not work with bag addons that do not use the blizzard default bag interface. If the bag mark does not work, there is an optional text explanation.

(*) If you change the Scrap or Peddler list of junk, you have to launch GreyHandling calculation to update bag marks.

grey-handling's People

Contributors

pierre-sassoulas avatar pre-commit-ci[bot] avatar psass-antidot avatar psasselum avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

grey-handling's Issues

Permit to change key binds

can we have the option to make our own keybind? it messes up other key-binds I have on shift and ctrl

Could also permit to have other key binds.

Add an option to not show API fail

Every time when i (or party member) loot everything for 1st time the text appears. When we roll any item it duplicates 5-6 times. Don't wanna see this spam

Green tradable mark on the wrong stack of items

When we have multiple stacks of exchangeable items, the one that we want to exchange isn't always the one that is highlighted. Often, it's the biggest one because Bagnon sort them from the biggest to the smallest and the first one is taken.

Crash when hovering over an item during a TSM scan

Message: ...ddOns\GreyHandling\functions\SetGameTooltipPrice.lua:12: Invalid 'itemString' argument type (must be a TSM item string): nil
Time: Fri Nov  6 18:59:16 2020
Count: 1
Stack: ...ddOns\GreyHandling\functions\SetGameTooltipPrice.lua:12: Invalid 'itemString' argument type (must be a TSM item string): nil
[C]: ?
[C]: in function `error'
Interface\AddOns\TradeSkillMaster\Core\API.lua:407: in function `ValidateTSMItemString'
Interface\AddOns\TradeSkillMaster\Core\API.lua:210: in function `GetCustomPriceValue'
...ddOns\GreyHandling\functions\SetGameTooltipPrice.lua:12: in function `getPrice'
...ddOns\GreyHandling\functions\SetGameTooltipPrice.lua:22: in function `GetItemInfo'
...ddOns\GreyHandling\functions\SetGameTooltipPrice.lua:30: in function <...ddOns\GreyHandling\functions\SetGameTooltipPrice.lua:25>
[C]: ?
[C]: ?
[C]: in function `SetCraftItem'
[string "*:OnEnter"]:2: in function <[string "*:OnEnter"]:1>

This addon seems to hijack the print() function

With an addon I am working on, I was trying to debug a chat filter . After about 2 hours of not getting the output I was expecting, I disabled Grey Handling (as I noticed the name pop up a lot in chat when it shouldn't) and I finally got the output I was expecting.

This addon seems to cause lots of problems when trying to print to a chat frame using print. It seems to gobble up everything after the first argument to print. Just running /run print("test") outputs GreyHandling: test to the chat frame. GreyHandling should not be intercepting these calls.

Add an option to ignore scrap junk list

I don't wanna use Scrap's junk list. Can you add option to ignore scrap list? I don't wanna throw away some stuff i marked in Scrap, i need this things for vendor.

Problem with Bagnon integration

https://www.curseforge.com/wow/addons/greyhandling#c49

Whenever I log into the game, I get an error between Bagnon and Greyhandling:

Date: 2019-12-23 12:32:22
ID: 1
Error occured in: Global
Count: 1
Message: ...nterface\AddOns\GreyHandling\Bagnon_GreyHandling.lua line 12:
   attempt to index local 'ItemSlot' (a nil value)
Debug:
   ...nterface\AddOns\GreyHandling\Bagnon_GreyHandling.lua:12: in main chunk
Locals:
A = "GreyHandling"
GreyHandling = <table> {
 member_leave_frame = <unnamed> {
 }
 NAME = "GreyHandling"
 IS_CLASSIC = true
 loot_frame = <unnamed> {
 }
 print = <function> defined @Interface\AddOns\GreyHandling\constants.lua:40
 bluePrint = "6699ff"
 DESCRIPTION = "Helps you get rid of the right grey objects when your bags are full"
 DEVELOPMENT_VERSION = false
 SELL_PRICE_TEXT = "Sell Price:"
 db = <table> {
 }
 isJunkByItemLink = <function> defined @Interface\AddOns\GreyHandling\functions\GetCheapeastJunk.lua:19
 data = <table> {
 }

One sided exchange without asking anything in return

So you can give something useful but cheap to a teammate without asking something in return. That's what I always do in-game, it's faster than asking for something, and most of the time its beneficial long term because of the goodwill it create.

Localize the addon in chinese

Following a request in #9, we could localize the addon for Chinese users. I don't know any Chinese so the translation would be really bad unless I'm helped by someone knowledgeable.

Incorrect gold value for common armor and weapon

It seems that the WOW API does not give the real vendor value with getItemInfo(). It even gives an item link with wrong value for gold. (64 copper for a 2s99c item).

It's a bug, but I think it's in the WOW API, so I don't know how to fix it right now.

Affect only common weapon/armor, so it only affects the very low level players, because later weapon and armor are grey or green but rarely white.

I don't think I'll take more time for this, but PR welcome :)

Optimize position update on BAG_UPDATE events

The most likely possibility is that the cheapest objects did not move. Instead of searching for it in the whole bag, just try to search it where we think it is first. Then, if it moved, search for it everywhere.

Chat loot message incorectly parsed in chinese

I am using the 0.5.2c version on the Chinese client. When my mage makes "Conjured Fresh Water" or "Conjured Bread", I get the following error:

2x ...Ons\GreyHandling\functions\handleChatMessageLoot.lua:5: table index is nil
...Ons\GreyHandling\functions\handleChatMessageLoot.lua:5: in function `updatePlayersList'
...Ons\GreyHandling\functions\handleChatMessageLoot.lua:24: in function `handleChatMessageLoot'
GreyHandling\GreyHandling-0.5.2c.lua:18: in function <GreyHandling\GreyHandling.lua:17>

Locals:
player_id = nil
player_name = ""
(*temporary) = <table> {
 PlayerID1AEBCFE1123123 = "TestName-TestServer"
}
(*temporary) = nil
(*temporary) = "table index is nil"
GreyHandling = <table> {
 NAME = "GreyHandling"
 IS_CLASSIC = true
 loot_frame = <unnamed> {
 }
 data = <table> {
 }
 OPTION_COMMAND = "/gho"
 DESCRIPTION = "Helps you get rid of the right grey objects when your bags are full"
 GetLocalization = <function> defined @GreyHandling\constants.lua:51
 SELL_PRICE_TEXT = "卖价:"
 options = <table> {
 }
 frame = <unnamed> {
 }
 DISPLAY_NAME = "Grey Handling"
 functions = <table> {
 }
}

Integrate TradeSkillMaster market value

This would permit to take resell value into account. Should also permit to add a modificator if you have to resell it (default to 30 coppers for sending it to your mule.)

Revert change that remove cheapest item when a mutually beneficial trade is found

Not sure if I just never noticed this or if it changed after the latest update, but when I was in a party and I pressed shift ctrl, greyrunning only gave me the suggestion to trade with another player. But it didn't pick up or point out my cheapest item.

Is there a way to turn off the party trade suggestions? I feel like most of the time I don't want to bother with trying to find do mutually beneficial trades.

[Classic] Addon compatibility?

Hey and thank you for your great addon!

Is your Classic addon compatible with just the default bags or with other "bag addons" currently compatible with WoW Classic, like Inventorian (which I will use), OneBag3 Classic or ArkInventory Classic?

I would love to use it but is it means using default bags, it's a no-go for me.

Can you specify the compatibility of your addon in the description? 😄

EDIT: adding the Classic tag.

Take exchange into account

The database is not updated when you exchange an object with someone, so if the other user do not have GreyHandling, the database is out of sync and useless.

Chat loot message API is not the same on classic

Following #9 there is API message when the player is looting for the first time. This is due to the fact that the API for chat loot message is different in classic than in retail. The player is looting the object so we do not have to track its object and we do not have to call getItemInfo. But we did not realize its the player because of those API changes.

Calculate once, update when needed

Right now calculations are done very often in particular for ArkInventory and Bagnon (for each update of a ButtonFrame). The addon should calculate once use a global value and then re-calculate only when needed. (In case of loot, exchange, sell, or throw ?)

Keep the junk coin provided by Bagnon Scrap

After the update that provides bagnon support, I notice that I no longer get the coin icon over the items that will be scrapped.

I have Bagnon, Scrap, bagnon_scrap, and greyhandling enabled. If I disable greyhandling I can see the coin icons again from scrap.

Chat spam

I see this was already fixed in a recent commit but please publish a new version asap as the current version is practically unusable with the chat spam (Calculated cheapest object).

Add an option to pick the cheapest even when there is two options

Since there is still no Bagnon compatibility, it's difficult to find the two items in the bag when there is a "cheapest now" and a "cheapest later" since the item won't glow or highlight
It would be nice if there was a setting to just force pick "Cheapest now" so you don't have to find the item in your bag (but still show the two options in the chat window)?

Adding a list of junk considered like grey items

Hi !

First thx for your add on, it's really nice to have. I would like to make a feature suggestion because it has happened to me quite often that the lowest priced item is actually not a grey but an other item like a consumable. Would it be possible to allow players to manually add items to the pool of items they want the add on to consider as trash ?

Anyway thx for your work :)

Xatrith

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.