This release fixes the logic for matching "similar" items that was broken by a recent update. This was most noticeable when matching damaged weapons, such as swords against possible targets. A specific example is that a target containing a golden sword should match other golden swords even if they differ in the amount of damage they have or the enchantments on them.
The tool item output was no longer accurate. Now, it reports the primary targets for the item in hand, the overflow targets and whether excess items will be destroyed.
Empty shulkerboxes will no longer be teleported to targets containing shulkerboxes with items in their inventory.
Previously, if an empty shulkerbox was to be teleported and no targets containing an empty shulkerbox of the same type could be found, but the plugin found a shulkerbox being used to group other items as targets, it would teleport the empty shulkerbox to one of those targets. This is generally undesirable behavior and could make it difficult to find where an empty shulkerbox went.
Now, the plugin will only teleport an empty shulkerbox to a target that contains an empty shulkerbox of the same type (that is, color). Even so, other plugin behavior like name tags and carrot-on-a-stick are still applicable when finding a suitable target for empty shulkerboxes.
This is a non-functional change to the API that the various claims helper plugins (SmartItemSort-WorldGuard, SmartItemSort-GriefPrevention, etc.) use. It supports enhanced functionality that future versions of these helper plugins will require.
Update 1.4.5 unintentionally had code to produce a stack trace every time the server loaded a chunk that was used to diagnose the spurious chunk loads that 1.4.5 corrected.
This debugging output has been removed, otherwise the functionality is the same as 1.4.5.
This update adds a workaround so that smart item sorters does not force chunks to remain loaded.
Something changed in recent Paper builds. The plugin has a check to see if a smart item sorter is in a loaded chunk before it attempts to access it so that it does not unintentionally force chunks to reload. Unfortunately, in recent server builds, this check instead of helping to avoid loading a chunk unnecessarily, now cause the chunk to be loaded. So, the check is now causing what it was supposed to prevent.
This update includes a different method of testing the state of a chunk that does not have this problem.
Fixed a dupe scenario reported by
Linfanz (thank you).
- This update fixes a spurious error in the logs recently reported.
- It adds the /smartitemsort tags command to list the names of all tags defined on the server.
- It also adds the /smartitemsort tag command to list the blocks/items selected by that provided tag name.
Fixed a bug in the plugin where named tags could only select item tags. Now name tags can also reference block tags.
Previously, if you did not set "targetAcceleration" in config.yml, it would default to false. This was a bug. targetAcceleration is now enabled by default.
It is now possible to arrange for overflow items to be either destroyed or sent to an alternate location for processing.
This release reworks the distribution of items to targets. Now it happens in three passes. The first pass, the plugin attempts to transfer the item stack to available targets with inventories (hoppers, chests, etc.). If the item stack cannot be completely transferred to available inventories, the second pass is performed. During the second pass is performed, a new search for targets is made that only includes non-inventory blocks (except lava cauldrons). And the item stack will be teleported to one of these randomly. Finally, if the item stack could not be teleported and a lava cauldron was found, the item stack will be teleported to that and destroyed. Note that since the search for targets during the first pass and the second/third pass search for different block types, they may take advantage of different matching levels. For example, even though the first pass finds inventories with an exact item match, the second pass may yet still use a default match (carrot on a stick) over a cobweb to catch overflow. The exact match of the first pass does not prevent a tag, similar or default match in the second or third passes.
Note that "hopper acceleration" is now the expect mode of operation and legacy support for teleport items over hoppers instead of placing the items directly into the inventory is now deprecated and support for that will be removed completely in a future release. If hopper acceleration is disabled, the multi-pass strategy described above will not be performed. The plugin would use the previous single pass strategy.
This change is a performance improvement only release. No features have changed. The plugin's impact on server performance increased beyond what I consider to be acceptable with the new features of 1.3.0. This release corrects that.
You can now take advantage of composters to reduce lag.
It is known that placing composters on top of hoppers reduces lag because it prevents hoppers from looking for dropped items to add to their inventory. With this release of the plugin you can now take advantage of that.
The plugin now places items directly into a hopper's inventory instead of teleporting the items when the selected target is on a hopper or on top of a composter that is on top of a hopper. In addition, the plugin is now capable of splitting an item stack across multiple hopper inventories when necessary.
If the target is not above a hopper, the old mechanics of teleporting the item to the target will still be used.
In previous releases, a teleport item could be teleported to a target that was a shulkerbox or bundle only if an item in its inventory was an exact match for the teleported item.
Now item tag matching and similar matching is also applied against the shulkerbox/bundle inventory
Catch an NPE (Spigot bug?) that keeps items from being teleported.
Added additional trace logging
Now players can find out where an item might be teleported to.
Sometimes items are not teleported where you expect them to go. For example, if players are building close to each other, their teleport pads or smart item sorters might find teleport targets in another player's build area. To help diagnose these situations, a player can hold a tool item (a stick by default) in their main hand and another item in their off-hand. If they then use (that is, right-click with) the stick on a smart item sorter or the top block of a teleport pad, the plugin will notify the player in their chat window the coordinates where the item in their off-hand would have been teleported to.
* When a shulkerbox was placed in a target frame, the plugin was testing the teleported item to see if it matched an inventory slot in the shulkerbox exactly (including the number of items in the stack). The plugin will now (correno longer consider the size of the stack when testing to see if the teleported item matches the items in a shulkerbox.
Fixed problem where it could be hard for the plugin to find item sorters when a chunk was reloaded after a player leaves the area of the smart item sorter and returns to it later.
Also fixed a couple of exceptions that could occur.
Given that the plugin has been stable for a while and with the addition of a few new features, it is time to mark this plugin for general use. I hope everyone enjoys it as much as we do.
New features:
- shulkerboxes can now be used in item frames to identify a set of items that should be dropped there.
- name tags can now leverage the Minecraft item tagging system to identify a set of related items that should be dropped there.
- the fallback/last-resort item (carrot on a stick, by default) that will receive any items that cannot be matched to another teleport location can now be changed in config.yml
* fixed a problem that developed with a last minute switch from a HashMap to a TreeMap
The plugin now triggers a custom event when linking teleport sources (teleport pads or smart item sorters) to potential targets. This makes it possible for other plugins to limit which targets are available from a given teleport source. The intended use of this event is to allow other plugins to enforce land claims, so that this plugin does not become overly encumbered with dependencies to other land management plugins.
Now if you place a shulkerbox in the smart item sorter block, it will teleport the items in the shulkerbox one stack at a time until the box is empty and then it will teleport the empty box.
Sorting your items after a mining session has probably never been easier

When the dispenser becomes the Smart Item Sorter, its name was being changed to an incorrect, older name used by the plugin. The block name is now "Item Sorter", but can be changed in config.yml.