ShopShelves | Player & Admin shops icon

ShopShelves | Player & Admin shops -----

New advanced way of admin shops and playershops. ShopShelves and PlayerShelves




Downgraded to java 21 (for 1.21.9+ to work again)
Fixed Bug: OutOfMemoryError
----------, Apr 27, 2026

Version 1.0.12
New Feature: Sale & Tax System • Added /shops sale and /shops tax commands for applying server-wide or per-player price modifiers to admin shops. • Global deals replace each other (only one global sale and one global tax active at a time). • Player deals stack — multiple timed deals can coexist without losing earlier ones when a newer one expires. • Resolution logic: highest sale wins, highest tax wins, they cancel each other out. A 25% sale and 20% tax results in a net 5% sale. • Global deals take priority over personal deals when the global percentage is higher on that side. • Added /shops deals command to view active global and personal deal percentages at a glance. • Text displays on admin shops automatically update to reflect the active global deal price when a sale or tax is set or cleared. • Player-owned shelf shops (PLAYERSHELF mode) are completely immune to deals — sales and taxes are an admin tool and do not affect player shops. • Added player_deals_online config option: when enabled, personal deal timers only count down while the player is connected to the server. Global deals always use wall-clock time. • Timed deals accept duration tokens: 30m (minutes), 6h (hours), 7d (days).

New Permission Nodes • shopshelves.sale — allows using /shops sale. • shopshelves.sale.<N> — allows applying a sale up to N% (e.g. shopshelves.sale.20). • shopshelves.sale.# — allows applying a sale of any percentage. • shopshelves.tax — allows using /shops tax. • shopshelves.tax.<N> — allows applying a tax up to N%. • shopshelves.tax.# — allows applying a tax of any percentage. • shopshelves.deals — allows viewing active deals via /shops deals. Defaults to true (all players).

New: Deal Placeholders The following placeholders are now available in messages.yml and display format strings: • %sale% — net effective sale % after global+personal cancellation (0 if none). • %tax% — net effective tax % after global+personal cancellation (0 if none). • %sale_format% — always renders as "Sale X%" even when 0. • %tax_format% — always renders as "Tax X%" even when 0. • %if_sale% — renders "Sale X%" only when a sale is active, otherwise empty. • %if_tax% — renders "Tax X%" only when a tax is active, otherwise empty. • %global_deal% — shows the winning side for global deals only ("Sale X%" or "Tax X%" after they offset each other, or empty if equal/zero). • %player_deal% — shows the winning side for the combined player result (global + personal). Whichever side is larger after cancellation wins.

Developer API • Added price modifier API to ShopshelvesApi. Third-party plugins can now apply and remove per-player price multipliers for admin shops programmatically. • ShopshelvesApi.setPlayerPriceModifier(uuid, multiplier) — applies a permanent modifier. 0.80 = 20% discount, 1.20 = 20% surcharge. • ShopshelvesApi.setPlayerPriceModifier(uuid, multiplier, durationMs) — timed version. • ShopshelvesApi.removePlayerPriceModifier(uuid) — removes any modifier set by the calling plugin. • ShopshelvesApi.getEffectivePriceMultiplier(uuid) — returns the combined effective multiplier for a player (all sources: API + command + global). • ShopshelvesApi.hasActiveModifier(uuid) — returns true if any deal is currently active for a player. • API modifiers feed into the same stacking system as command-set deals and respect all existing PLAYERSHELF immunity rules. • Added DealEntry.Source.API to distinguish API-set modifiers from command-set ones internally.

Persistence • All deals (global and player) are persisted in the existing shopshelves.db SQLite file across server restarts. A new deals table is created automatically on first run — no migration steps required.
----------, Apr 22, 2026

Changes:

  • Missing messages in the configs will now apply to existing configs on update.
  • Player shops now better "remove" when container is broken.
  • /Shops admin <playername> is now a thing
  • The main config now supports a language setting for the %item% placeholder.
----------, Mar 11, 2026

Big Changelog:
+ World Guard support allow-shop flag for convenience using same flag as other shop plugins for easy migration.
+ World list in config now accepts a list of worlds that allow the shops to work in when list is empty all worlds allow shops.
+ Shop Labels the custom price gui now allows changing your shops name!
+ Players can now see the actuall shelf block contents by shift right clicking the name of the shop to open a GUI.
+ Custom price chat input now accepts an item amount.
+ New permissions: shopshelves.setlabel, shopshelves.setlabel.color, shopshelves.playershelf.worlds, shopshelves.playershelf.<worldName>
----------, Mar 10, 2026

Custom Price GUI:

New Shop Shelf Statistics Book:

Shows the slot number item name and amount in lore + the profit and loss made on this shop

More Compatible with DrawerShelves: https://www.spigotmc.org/resources/drawershelves.133020/
No longer turns Drawers into shops:

+ Now also removes drawers from being turned into player shops.
+ Now allows admins and shop owners to break the container to remove the playershop.
+ Now adds copper chests to playershop containers (to match the fabric version)
----------, Mar 5, 2026

Custom Price GUI:

New Shop Shelf Statistics Book:

Shows the slot number item name and amount in lore + the profit and loss made on this shop

More Compatible with DrawerShelves:
No longer turns Drawers into shops:
----------, Mar 5, 2026

Quick fix: Textdisplays will no longer be visible thru blocks, walls, buildings.
Cons: They are a little less bright
----------, Mar 1, 2026

Update Changelog

New Features
  • Custom Price GUI: A dedicated interface for setting and managing item prices.
  • Explosion Immunity: Shelf blocks are now 100% immune to all mob-based explosions (e.g., Creepers, Ghasts), keeping your shop safe.

Interaction & Logic Updates
  • Refined Interaction Zones:
    • Price Config: Right-click or Shift + Right-click the top 4 or bottom 4 horizontal pixels of the front face to open the custom price GUI.
    • Shop Mode: The "Switch Shop Mode" function now only triggers when interacting with the 8x16 pixel front slots.
  • Left/Right Click Logic: General updates to interaction handling for a smoother user experience.

️ Security & Protection
  • Slot Hardening: The 8x16 pixel front face slots no longer allow breaking, preventing accidental destruction of the display area.
  • Hopper Lockdown: Hoppers are now completely disabled for Shop Shelves. They can no longer pull items out or push items in, ensuring manual-only transactions.
----------, Mar 1, 2026

Smart Inventory Check (Purchase Protection)

We’ve fixed an issue where players were sometimes charged for items even if their inventory was full.

If you don't have enough room to fit the entire purchase, the transaction will safely cancel, and you won't lose a single cent!

️ Stable Shop Displays

Fixed a rare visual bug where the "Price" and "Amount" text labels on a shelf could sometimes swap places or flicker.

Labels are now "locked" to their specific lines, ensuring your shop looks professional and consistent at all times.

BreweryX Integration

Full support for BreweryX custom brews!

Shops now recognize specific Brewery recipes and their quality levels.

You can now set custom prices for different types of aged drinks and specialized brews just like any other item.
----------, Feb 15, 2026

Fixing text displays being removed / cleared upon reloads and player movement
----------, Jan 16, 2026

This update fixes the slot issues we had when ShopShelves were facing north or south switching slot 1 with 3.
----------, Jan 6, 2026

Fixed a playershelf shop issue with the multiple item feature not recognizing proper slot.
----------, Nov 28, 2025

Bug Fix: Fixed a bug with player ShopShelves acting up on setting up items.

New Feature: Player ShopShelves now have a new setting (limit_playershelf_to_single_type) in the config by default on true if set to false it will allow players to use 3 different item types in 1 player ShopShelf.
----------, Nov 22, 2025

Paper compatibility! My excuses for the wrong version!
----------, Nov 20, 2025

My first upload was a spigot only plugin which i quickly fixed to have paper support i uploaded the second version correctly to modrinth but forgot to update spigot i am sorry for the inconvenience!
----------, Nov 19, 2025

Resource Information
Author:
----------
Total Downloads: 442
First Release: Nov 17, 2025
Last Update: Apr 27, 2026
Category: ---------------
All-Time Rating:
7 ratings
Find more info at modrinth.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings