Voxel Shop beta is live. Expect occasional bugs. Learn more  
EconomyShopGUI - SellStick icon

EconomyShopGUI - SellStick 5.4

The BEST sellstick plugin! Used to quickly sell items in containers.

Page 1
5.4 9 days ago
fixes for exceptions and old migrations
- Fixed the v5.2 database migration.

- Legacy quantity <= 0 values are normalized to 1; prices and leaderboard totals remain unchanged.
- Existing transactions.pre-5.1.db backups are preserved.
- New transactions still enforce quantity > 0.
- Added migration, retry, backup, and constraint regression tests.


- Implemented the empty-price sale fix.

- SaleService.java now treats missing initial prices as “nothing sellable,” without logging an error or mutating the transaction.
- Pre-transaction event price validation remains strict.
- Added regression coverage in SaleServiceTest.java.


Please consider leaving a good review for the plugin.
Discord Support
5.2 12 days ago
Multi-Currency Support, Safer Transactions
Added
  • Full multi-currency support for EconomyShopGUI economies.
     
  • Currency-aware transaction history, leaderboards, and PlaceholderAPI placeholders.
     
  • /sellstick status for plugin, database, dependency, cache, and update-check health.
     
  • Persistent /sellstick claim cooldowns that survive restarts.
     
  • /sellsticktop sellers|items|total [currency] with currency filtering.
     
  • Strict configuration validation with safe reload rollback.
     
  • Fully configurable command, transaction, leaderboard, status, and update messages.
     
  • Automatic transactions.log rotation and retention.
     
  • Database schema v2 with automatic legacy migration and pre-upgrade backups.
     
  • Paper 26.2 / Java 25 compatibility build profile.
     
  • Expanded automated test coverage from 10 to 18 tests.
     
Changed
  • Sale earnings are now stored separately per currency instead of combining unrelated economies.
     
  • EconomyShopGUI providers now control currency formatting.
     
  • Added EconomyShopGUI PreTransactionEvent and PostTransactionEvent integration.
     
  • Reworked transaction processing for safer validation, payment, inventory updates, and rollback.
     
  • Replaced Bukkit database tasks with a dedicated serialized persistence worker.
     
  • Leaderboard caches are now maintained independently for each currency.
     
  • /sellstick reload keeps the previous working configuration when validation fails.
     
  • Item creation and legacy-stick handling now use validated immutable settings.
     
  • Update checking now exposes detailed runtime states and prevents stale async results.
     
  • Existing placeholders continue using the configured default currency.
     
Fixed
  • Prevented different currencies from being incorrectly combined in statistics.
     
  • Improved transaction rollback when a sale fails partway through.
     
  • Prevented presentation errors such as sounds/titles from undoing successful sales.
     
  • Improved database shutdown handling and pending-write reporting.
     
  • Fixed raw PlaceholderAPI values to return stable unformatted decimal numbers.
     
  • Improved database migration safety with transactional rollback and idempotent upgrades.
     
Compatibility
  • Existing 5.0 Sell Sticks remain valid.
     
  • Valid pre-5.0 sticks continue to migrate automatically.
     
  • Existing transaction history is preserved and assigned to the configured default currency.
     
  • Existing default PlaceholderAPI placeholders remain supported.
     
  • Java 21 / Paper 1.21.11 remains the primary release baseline.
     
Please consider leaving a good review for the plugin.
Discord Support
5.0 27 days ago
A major compatibility and reliability update for modern Paper servers.
Added
  • Updated support for Paper 1.21.11+ and Java 21.

  • Added secure Sell Stick usage storage using Persistent Data Container.

  • Added automatic migration for legacy Sell Sticks.

  • Added <USAGE> placeholder support.

  • Added improved version checking with prerelease support.

  • Added safer asynchronous database transactions.
Fixed
  • Fixed Sell Stick uses being vulnerable to lore editing.

  • Fixed expired sticks attempting to sell before being removed.

  • Fixed off-hand Sell Stick removal.

  • Fixed failed sales potentially leaving payments or container contents in an inconsistent state.

  • Fixed Sell Stick usage being consumed before a sale fully completed.

  • Fixed database failures affecting normal selling.

  • Fixed update checks incorrectly comparing version numbers.

  • Fixed PlaceholderAPI expansion not surviving PlaceholderAPI reloads.

  • Fixed various deprecated Paper/Bukkit API usages.
Improved
  • Improved transaction rollback and sale safety.

  • Improved database performance and leaderboard cache refreshing.

  • Improved Adventure text/component support.

  • Preserved all existing commands, permissions, placeholders, pricing behavior, multiple currencies, and historical database data.

  • Improved invalid configuration and sound handling.
Compatibility
  • Java 21+

  • Paper 1.21.11+

  • PlaceholderAPI 2.12.3

  • EconomyShopGUI API 1.10.1
Please consider leaving a good review for the plugin.
4.5 Aug 29, 2026
EconomyShopGUI API Update & Safer Container Transactions
  • Updated support for EconomyShopGUI API 1.10.1.

  • Reworked container selling to properly preserve custom item metadata.

  • Improved compatibility with sell limits, dynamic pricing, multipliers, and multiple currencies.

  • Containers are no longer modified until all required payment providers have been successfully validated.

  • Failed transactions now safely restore container contents and roll back completed payments where necessary.

  • Added a configurable transaction failure message.

  • Configuration files now automatically receive newly introduced options when updating.

  • Existing configuration values are always preserved during automatic updates.

  • Legacy configuration formats remain fully supported for backwards compatibility.
Please consider leaving a good review for the plugin.
4.4 Aug 19, 2026
Maintenance update

Added

  • Added README.md with requirements, commands, permissions, PlaceholderAPI placeholders, cache notes, and build instructions.
  • Added checkForUpdates: true to config.yml.
  • Added leaderboard configuration options:
    • cache-seconds
    • top-items-days
    • limit
  • Added new configurable messages:
    • messages.inventory_full
    • messages.target_inventory_full
  • Added an asynchronous leaderboard cache for top sellers, top items, and total money.
  • Added database schema support for storing player names with transactions.
  • Added database indexes for transaction timestamps, player UUIDs, and item/timestamp lookups.


Changed

  • Updated Maven metadata:
    • groupId changed from org.example to com.lucidaps.
    • Version changed from 1.0-SNAPSHOT to 4.2.
    • Added project name and description.
  • Marked EconomyShopGUI-API as provided in Maven.
  • Changed PlaceholderAPI from a required depend to an optional softdepend in plugin.yml.
  • Changed EconomyShopGUI handling so the plugin disables itself early if neither EconomyShopGUI nor EconomyShopGUI-Premium is enabled.
  • Moved EconomyShopGUI dependency validation before sell listener registration.
  • Reused a single TopCommand instance for the command executor and tab completer.
  • /sellstick reload now restarts the leaderboard cache using the newly loaded configuration.
  • /sellsticktop now uses the configurable leaderboard limit and top-item day range.
  • PlaceholderAPI leaderboard placeholders now use cached leaderboard data.
  • Top seller displays now use stored player names when available instead of synchronous offline-player lookups.
  • Transaction logging now stores the player's name alongside their UUID.


Fixed

  • Fixed potential main-thread SQLite reads from /sellsticktop.
  • Fixed potential main-thread SQLite reads caused by PlaceholderAPI placeholder requests.
  • Fixed potential main-thread offline-player lookups when displaying leaderboard data.
  • Fixed command fallthrough where unauthorized users could enter admin subcommands and continue into normal /sellstick behavior.
  • Fixed /sellstick consuming the cooldown when the player's inventory was full.
  • Fixed sell stick claiming silently failing or stacking into existing sticks by requiring an empty inventory slot.
  • Fixed give and customgive losing items when the target player's inventory was full. Items are now dropped at the target player's location instead.
  • Fixed customgive accepting invalid usage values such as 0 or negative numbers.
  • Updated plugin.yml command and permission descriptions to match current behavior.

Please consider leaving a good review for the plugin.
Discord Support

4.2 Mar 19, 2026
fixes improvements
Fixes
  • Fixed sell stick usage increasing twice when both the display name and lore contained a usage counter like [x/y].
  • Fixed the update checker URL so version checks now use the correct Spigot endpoint.
  • Fixed PlaceholderAPI placeholders returning blank in non-player contexts, including placeholders such as total money.
  • Fixed possible null issues involving ItemMeta during sell stick validation and item creation.
  • Fixed startup flow so the plugin now disables immediately if EconomyShopGUI or EconomyShopGUI-Premium is missing.
  • Fixed command registration to avoid creating multiple unnecessary TopCommand instances.
 
Improvements
  • Reworked sell stick usage handling so usage is read once, incremented once, and written back consistently.
  • Improved sell stick removal logic when the item reaches max usage.
  • Improved SQLite handling to reduce locking and concurrency problems.
  • Added synchronization around database access for better stability.
  • Enabled SQLite WAL mode and busy timeout for more reliable database writes.
  • Replaced manual SQL resource closing with try-with-resources.
  • Improved command registration safety with null checks for missing commands in plugin.yml.
  • Moved update checker callbacks back to the main thread before using the result.
  • Removed risky async EconomyShopGUI sell limit updates and kept them on the main thread.
  • Added safer ItemMeta checks when creating sell sticks from config and custom usage values.
 
Cleanup
  • Removed unused helper methods from PlayerInteractionHandler.
  • Cleaned up duplicate command object creation.
  • Simplified placeholder handling for global placeholders.
  • Made startup logic cleaner and easier to follow.
 
Please consider leaving a good review for the plugin.
Discord Support
4.1 Dec 29, 2025
more options and fixes
- Added optional Sneak-to-use mode (sellstick.require-sneak) to prevent accidental selling
- Added message feedback when a container has no sellable items
- Currency symbol is now taken from config everywhere (Top command + PlaceholderAPI)
 
# Configuration for the Sell Stick
sellstick:
  # if true, player must be sneaking to use the stick
  require-sneak: false
 
# Configuration for the messages displayed to the user
messages:
  world_blacklisted: "&cYou can’t use the Sell Stick in this world."
  sneak_to_use: "&dShop &8>> &7Sneak to use the Sell Stick."
  nothing_sellable: "&dShop &8>> &7No sellable items found in this container."
 
 
Please consider leaving a good review for the plugin.
4.0 Nov 11, 2025
Colors , Title messages and more

- Better and proper support for HEX colors and other variations for display name and more.
- Made sure the plugin doesn't break that easily with extreme customization of the sell stick.
- Added the option to customize the title-messages if they are enabled.
- Added a currency option.


Config Changes


# Configuration for the Sell Stick
sellstick:
  # Display name of the Sell Stick
  display-name: "&dShop &8>> &bSell Stick"
  # Lore (description) lines on the Sell Stick
  lore:
    - "&7A special stick for &d/market"
    - "&7Use it to quickly sell chests and shulkers!"
    - "&7Usage: [&d0/<MAXUSAGE>&7]"
  # Maximum usage limit for the Sell Stick
  max-usage: 20
  # Material type of the Sell Stick
  material: BLAZE_ROD
  # Cooldown time (in minutes) for using the Sell Stick command
  cooldown-command: 5
  currency-symbol: "€"            # used by <CURRENCY> placeholder (optional)
  # Whether to display a title message on successful sale
  title-message:
    enabled: true
    title: "&aSold for <CURRENCY><PRICE>"
    subtitle: "&7<PLAYER> sold: &d<ITEMS>"
    fade-in: 10
    stay: 80
    fade-out: 10

# Configuration for the sounds played on successful sale
sounds:
  # Whether to enable sounds globally
  enabled: true
  # Sound configuration for low-value sales
  low_value:
    # Type of sound to play
    sound: BLOCK_NOTE_BLOCK_CHIME
    # Volume of the sound (0.0 to 1.0)
    volume: 0.8
    # Pitch of the sound (0.0 to 2.0)
    pitch: 0.7
    # Threshold value to classify sale as low-value
    threshold: 1000
  # Sound configuration for medium-value sales
  medium_value:
    sound: ENTITY_PLAYER_LEVELUP
    volume: 0.8
    pitch: 1.2
    threshold: 5000
  # Sound configuration for high-value sales
  high_value:
    sound: ENTITY_FIREWORK_ROCKET_LARGE_BLAST_FAR
    volume: 0.8
    pitch: 1.0
    threshold: 10000

# Worlds where SellStick is disabled
blacklisted-worlds:
  - lobby

# Configuration for the messages displayed to the user
messages:
  # Message when a player receives a Sell Stick
  received_sell_stick: "&dShop &8>> &bYou have received a Sell Stick!"
  # Message when the configuration is reloaded successfully
  config_reloaded: "&aThe configuration has been reloaded!"
  # Message when a player does not have the required permission
  no_permission: "&cYou do not have permission to use this."
  # Message when a player tries to sell from an empty container
  container_empty: "&dShop &8>> &7The container is empty."
  # Message when a player reaches the sell limit for an item
  sell_limit_reached: "&dShop &8>> &7Sell limit reached for &d%s&7. Check the /market for the restock time."
  # Message when a player's Sell Stick reaches maximum usage
  max_usage_reached: "&cYour Sell Stick has reached maximum usage and has been removed!"
  # Message when a player tries to use a stack of Sell Sticks
  cannot_use_stack: "&cYou cannot use a stack of Sell Sticks. Please separate them."
  # Message when a player sells items successfully
  sold_successfully: "&dShop &8>> &7You sold &d<ITEMS> &7for &d<CURRENCY><PRICE>."
  # Message when a player tries to use the command while it's on cooldown
  command_on_cooldown: "&cPlease wait %d minutes before using this command again."
  world_blacklisted: "&cYou can’t use the Sell Stick in this world."



Please consider leaving a good review for the plugin.
Discord Support

4.0 Oct 25, 2025
Page 1
Sign in
$4.59 USD
Sign in to purchase, save this product to your cart, and keep downloads tied to your account.
Stripe