Sueta

ShopShelves

Spigot_Paper_Purpur_Folia_1.0.19

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

·Plugin
  1. Spigot_Paper_Purpur_Folia_1.0.19latestShopShelves 1.0.19yesterday

    New: Folia support

    ShopShelves now runs on Folia as well as Spigot, Paper, Purpur and Bukkit, from 1.21.9 to 26.3.

    New: TextureShelves support

    Players running the TextureShelves client mod now see a custom model on shop shelves. - Player shops use model key 999999 and admin shops use 999998, the same keys as the Fabric version of ShopShelves. - It needs no extra plugin: the model key is sent straight to nearby players. - Players without TextureShelves see a normal shelf, and nothing changes for them. - New config option: textureshelves_models: true. Set it to false to turn this off.

    New: Custom model data rules

    - Shelves that carry another plugin's or mod's custom_model_data (for example GenShelves or BonsaiShelves) can no longer become shops. They place and behave like normal shelves, and their own model is kept. - Plain shelves, and shelves with ShopShelves' own keys (999999 / 999998), work exactly as before. - Shelves placed before this update are treated as plain shelves.
    4 downloads
  2. Spigot_Paper_Purpur_1.0.18ShopShelves 1.0.18last week
    ShopShelves 1.0.18 — TradeShelves Compatibility Update ==================================================== ShopShelves and TradeShelves (item-for-item trading on shelves) now work together on the same server: https://modrinth.com/plugin/tradeshelves Install both and they detect each other on startup. ShopShelves always takes priority. NEW — TradeShelves compatibility -------------------------------- - Automatic detection: ShopShelves finds TradeShelves on startup and logs that compatibility mode is active and which hand each plugin uses for player shops. - One shelf, two hands: with both plugins installed, the hand you place the shelf with decides which kind of player shop you make. By default: - main hand = ShopShelves shop - off-hand = TradeShelves trade shelf Set TradeShelves_offhand: false to swap the hands. Admin shops are not affected and keep using each plugin's own admin mode. - Money and trades on one chest: the same owner can put a ShopShelves shop AND a trade shelf on the same chest, barrel, copper chest or double chest. A chest already linked to another player's shop (from either plugin) can't be used. - One reload for both: /shops reload reloads ShopShelves first, then TradeShelves. /trades reload reloads ShopShelves first as well. - Trade shelves are left alone completely: ShopShelves never interacts with, protects, breaks or re-chains a TradeShelves shelf. NEW — Compatible settings (config.yml) -------------------------------------- New settings, added to your config automatically. They only do something while TradeShelves is installed: # ─── Compatible settings (only used when TradeShelves is installed) ─── # true: ShopShelves player shops use the main hand, TradeShelves player shops use the off-hand. # false: the other way around. TradeShelves_offhand: true # true: TradeShelves uses the ShopShelves permission nodes (tradeshelves.X = shopshelves.X). TradeShelves_permissions: false # true: TradeShelves uses the default player shop limit from this config. TradeShelves_ownlimit: false - TradeShelves_permissions: true lets one set of shopshelves.* permissions control both plugins (tradeshelves.arrow is checked as shopshelves.mode). - TradeShelves_ownlimit: true makes TradeShelves use this config's default_player_shelf_limit. FIXED — Off-hand player shops ----------------------------- - Sneak-placing a shelf against a container with the off-hand now creates a player shop. Before, it did nothing. - Without TradeShelves installed, both hands work. NEW — Shelf compatibility for other plugins (developers) -------------------------------------------------------- - ShopShelves now ignores any shelf that another plugin has claimed. A shelf is foreign when its PersistentDataContainer holds, in any namespace other than shopshelves: <namespace>:shelf_claim any value <namespace>:shop_mode any value except NONE drawershelf:type any value except NONE (DrawerShelves) - TradeShelves and DrawerShelves follow the same rule, so one claim key makes a shelf invisible to all three plugins. See the Developer API section on the plugin page. - DrawerShelves drawers are recognised through the same check. Before, they had a separate check. IMPROVED -------- - Sneak-placing a shelf against a container now always tells you why no shop was made: container already linked, no permission, or player shop limit reached. Before, some of these failed silently.
    78 downloads
  3. Spigot_Paper_Purpur_1.0.17ShopShelves 1.0.172 weeks ago
    WorldGuard allow-shop flag fix.
    66 downloads
  4. Spigot_Paper_Purpur_1.0.16ShopShelves 1.0.162 weeks ago
    25 downloads
  5. Spigot_Paper_Purpur_1.0.15ShopShelves 1.0.15Oct 1, 2026
    New config setting: "container_protection" True: Protects connected containers of a player shop from explosives pistons hoppers etc. False: Still protects against non owners from opening and breaking.
    270 downloads
  6. Paper_Spigot_Purpur_1.0.14ShopShelves 1.0.14Sep 6, 2026
    Shop Textdisplays are gone when plugin is removed from server. TextDisplay updates canceled by is equall to existing data. Moderniced AsyncPlayerChatEvent.
    244 downloads
  7. Paper_Spigot_Purpur_1.0.13ShopShelves 1.0.13Apr 27, 2026
    Downgraded to java 21 (for 1.21.9+ to work again) Fixed Bug: OutOfMemoryError
    638 downloads
  8. 1.0.12ShopShelves 1.0.12Apr 22, 2026
    ShopShelves Spigot — Changelog =============================== 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.
    58 downloads
  9. Paper_Spigot_Purpur_1.0.11ShopShelves 1.0.11Mar 11, 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.
    294 downloads
  10. Paper_Spigot_Purpur_1.0.9ShopShelves 1.0.9Mar 10, 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>
    36 downloads
  11. Paper_Spigot_Purpur_1.0.8ShopShelves 1.0.8Mar 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: + 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)
    58 downloads
  12. Paper_Spigot_Purpur_1.0.7ShopShelves 1.0.7Mar 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
    38 downloads
  13. Paper_Spigot_Purpur1.0.6ShopShelves 1.0.6Mar 1, 2026
    Quick fix: Textdisplays will no longer be visible thru blocks, walls, buildings. Cons: They are a little less bright
    51 downloads
  14. Spigot_Paper_Purpur_1.0.6ShopShelves 1.0.6Mar 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.
    28 downloads
  15. Spigot_Paper_Purpur_1.0.5ShopShelves 1.0.5Feb 15, 2026
    🛠️ ShopShelves Spigot - Version 1.0.5 📦 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.
    144 downloads
  16. Spigot_Paper_1.0.4ShopShelvesJan 16, 2026
    Fixing TextDisplays vanishing / being removed
    185 downloads
  17. Spigot_1.0.3ShopShelvesJan 6, 2026
    Spigot and Paper plugin Bug fix north and south mixing up slots
    112 downloads
  18. Spigot_PaperShopShelvesNov 28, 2025
    Fixed a playershelf shop issue with the multiple item feature not recognizing proper slot.
    158 downloads
  19. Spigot_1.0.1ShopShelves Spigot/PaperNov 22, 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.
    71 downloads
  20. Spigot_1.0ShopShelves Spigot/PaperNov 20, 2025
    Paper compatibility! My excuses for the wrong version!
    73 downloads

Similar projects

Plugin →