Adminshop can't trade damaged items reliable
motherboard1999 opened this issue ยท 3 comments
Preliminaries:
- Shopkeepers version:
2.4.1
- Spigot version:
git-Spigot-573cdf2-1b982fd
- I have checked that my issue/question does not get answered by:
- The documentation.
- The FAQ.
- The Known Issues.
- I have checked all open and closed issues, but none seems to fit my issue/question.
Reproduction on a fresh and up-to-date Spigot server:
I was able
to reproduce my issue on a freshly setup and up-to-date Spigot server (currently git-Spigot-573cdf2-1b982fd
) with the latest version of Shopkeepers (currently 2.4.1
), with no other plugins and with no kinds of other server or client mods.
The issue:
If I create a shopkeeper admin and put damaged tools in it to trade, I don't get this damaged tools reliable. Sometimes I can't remove the result. If I try it multiple times and reconnect, it works.
On older Spigot versions the result is the same.
I hope you can fix this. You do a very good job, I love this plugin! Thank you.
In case it happens again with some item, you could do the following:
Place a chest, insert the item in question and create a schematic of the chest with WorldEdit, and then upload that so that I can take a look at the item's data. Also send me the shopkeepers data then, of the shopkeeper causing issues (you can find this inside the save.yml file).
When moving the item into the chest, make sure that you don't 'drag' the item (don't make any slight movements when clicking the inventory slot in the chest in order to place the item there..), since that could cause bukkit to normalize the item's data: To make sure that the item is still not working after you have moved it into the chest and created a schematic of it, you can pickup the item again from the chest and try the trade again and verify that the item is still not accepted.
The provided item has to perfectly match the required item, including the item's durability.
- If the result item doesn't show up, then the provided item probably doesn't match the required item.
- If the result item shows up but you cannot pick it up, then there might be a discrepancy between the client and server regarding the item: Usually this is either caused by some plugin doing packet modifications (ViaVersion, Denizens, .. -> try without other plugins), or by some issue of the server itself (make sure you are testing with the latest version of spigot, and not some derivative).
- If the trading works after a few tries: In some situations bukkit will 'normalize' the item's data. So it might be that the item's internal data is in some format that doesn't get recognised as equal to the required item, but after the data-normalization the items match fine. If this is the case, it might be required to investigate the item's data in detail to find the actual differences. How do you create this damaged item? Does it contain any other non-default data?
I tried to reproduce this with some item that got damaged by regular usage, and trading worked fine (it only accepts the item if the durability perfectly matches though).
Can you provide step-by-step instructions on how I can reproduce this on a fresh spigot server?