Sueta

Smart Shulker

1.2.0

Shulker boxes that pick up, delete or sell items by themselves. Paper and Purpur, 1.21 to 26.3.

·Plugin
Tested MC versions
1.21, 26.1, 26.2, 26.3

SmartShulkers turns shulker boxes into filtered storage. Give a shulker a filter and it picks up, deletes or sells the matching items you walk over. It's a server-side plugin for Paper and Purpur (1.21 to 26.3), so players can join with a vanilla client.

The three shulkers

Put a shulker box of any color and one extra item in a crafting grid. Whatever was inside the box stays inside.

ShulkerAddWhat it does
Smart ShulkerBookPicks up matching items into itself
Garbage ShulkerLava BucketDeletes matching items you walk over
Sell ShulkerEmeraldSells matching items for money (needs Vault and an economy plugin)

Dyeing works like normal, and a dyed shulker keeps its type, filter and contents. So does one that a piston, dispenser or water breaks. To turn one back into a plain shulker box, put it alone in a crafting grid. The contents stay.

Setting a filter

Pick up an item and click the shulker in your inventory with it.

  • Left click adds the item to the whitelist, or removes it if it's already there.
  • Right click does the same for the blacklist.

A shulker has either a whitelist or a blacklist, never both. Once one list has an item, the other is locked until you empty it. With a whitelist the shulker only takes the listed items, with a blacklist it takes everything except the listed items. The lore shows whichever list is in use.

To wipe the filter in one go, hold the shulker in either hand and run /ss clear.

You can also skip the inventory screen. Hold the shulker in your off hand and the item in your main hand, then sneak and click the air: left click for the whitelist, right click for the blacklist. Sorting mods can't trigger that by accident. Both methods can be turned off in the config (settings.general.filter-methods), which is handy if a sorting mod keeps changing filters.

Selling

Sell Shulkers pay what prices.yml says, per item or per stack:

STONE: 0.5        # 1 stone = 0.5
DIAMONDx3: 300    # 3 diamonds = 300, so 100 each

sell_when in the config decides when the sale happens: INSTA (on pickup), STACK, LAST_SLOT or FULL. /smartshulkers sellall sells everything sellable in every Sell Shulker you're carrying.

Config and permissions

  • config.yml has names, lore, messages, sounds, permission nodes and a switch for each shulker type.
  • blacklist.yml lists materials that can't go on a whitelist.
  • prices.yml is what the Sell Shulker pays.
  • Items with a custom name, lore or custom model data can be skipped. Names can be plain text or /regex/i.
CommandPermission
/smartshulkers reloadsmartshulkers.reload
/smartshulkers sellallsmartshulkers.sell.command
/smartshulkers clearthe shulker's modify permission

The crafting and filter permissions (smartshulkers.craft.* and smartshulkers.modify.*) can be changed in config.yml.

Found a bug? Open an issue or ask in the Discord.

Similar projects

Plugin →