Upgradable SellChest v1.4
Let your players sell items automatically!
SellChest v1.4.0
Stability Update | New Limits | Paper 1.21 - 1.26.2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Blocked Worlds ◆ Per-Player Limits ◆ Per-Chunk Limits ◆ Hologram Toggle ◆ Console Support
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
New Features
◆ Blocked Worlds Block SellChests from specific worlds. Add world names to settings.blockedWorlds in config.yml.
◆ Per-Player Limit Limit how many chests each player can place. Set maxChestsPerPlayer (0 = unlimited).
◆ Per-Chunk Limit Limit chests per chunk to prevent spam. Set maxChestsPerChunk (0 = unlimited).
◆ GUI Open Mode Choose how players open the upgrade menu: left click, right click, or shift+right click.
◆ Hologram Toggle Turn holograms on/off with hologram.enabled in config.yml.
◆ Console Commands /sellchest give, reload, and top now work from console.
Bugs Fixed
V Chunk events could crash or lose holograms on Paper 1.21-1.26.2
V Chest data loading crashed on unexpected number formats (YAML saves)
V Plugin crashed if language file was missing from jar
V Sell task read config from disk every second (now cached)
V Players got ghost inventories when plugin reloaded with GUI open
V Menu locks for offline players were never cleaned up
V Duplicate explosion handler code removed
V Unnecessary EconomyShopGUI API test on startup removed
V Database table creation no longer blocks server startup
V Player chest lookups now instant even with thousands of chests
V EconomyShopGUI Premium not detected properly
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Upgrading from 1.3.0
Replace the jar and restart. Config auto-updates. All chests and stats are preserved.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Questions? Contact bishyy on GitHub.
Major Update - Premium UX · 6 Languages · Tiered Audio · Full Code Audit
Premium UX Overhaul ◆ 5-Tiered Sound System ◆ 6 Languages ◆ Auto-Update Configs ◆ 7 PAPI Placeholders ◆ Full Code Audit
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
What's New in 1.3.0
This is the biggest SellChest update since release. Every message, every GUI element, every hologram has been redesigned from the ground up. The plugin now speaks 6 languages, plays tiered audio feedback, and automatically keeps all configuration files up to date - without ever touching your settings.
Premium UX Overhaul
◆ Complete Visual Redesign
Every message in the plugin has been rewritten with professional formatting, symbols, and color gradients. Gold headers with ✦ stars, dark gray ┃ separators, ◆ bullets - a consistent premium look across the entire plugin.
◆ Enchanted SellChest Items
SellChest items now have a subtle enchantment glow (hidden enchant, visual only). Your chests look as premium as they perform.
◆ Redesigned GUI
The upgrade interface now features dark-themed titles with ✦ accents, cleaner stat displays, and professional color coding for each upgrade path: gold for items, aqua for frequency, yellow for percentage.
◆ Enhanced Holograms
Holograms now show the owner's name, a summary of upgrade levels, and a clean countdown timer. Configurable text shadow, height, and view distance. Formatted sale values with comma separators: +12,345.67$
Tiered Audio and Visual System
Five tiers of sale effects based on transaction value:
Small Sale ($1+) 10 particles, EXP_ORB sound + hat chime
Medium Sale ($1,000+) 20 particles, LEVELUP (1.8x pitch) + chime
Large Sale ($10,000+) 30 particles, LEVELUP (1.4x pitch) + chime
Huge Sale ($50,000+) 30 particles + END_ROD sparkles, LEVELUP + bell
Epic Sale ($50,000+) + FIREWORK_TWINKLE for truly epic moments
GUI Sound Feedback:
Open - Chest Open · Close - Chest Close · Upgrade Success - LEVELUP + Chime · Max Level - Bass Block · No Money - Bass Block (low pitch) · Toggle - Hat Block · Pickup - Item Pickup
6 Language Support
Switch language in config.yml - no server restart needed.
English · Polish · German · Russian · Spanish · French
All language files auto-update when the plugin updates - you'll never miss new messages. Just bump lang-version and the plugin handles the rest.
Smart Auto-Update System
◆ Version-Tracked Configs
config.yml, upgrades.yml, and all 6 language files are tracked by version numbers. When you update the plugin, it automatically adds new keys from the built-in defaults - without overwriting a single setting you've customized.
◆ Configurable Processing
New config sections: processing (batch size, notification interval), hologram (height, view distance, shadow, see-through), expanded effects controls. The autosaveInterval setting now actually works (previously hardcoded).
7 PlaceholderAPI Placeholders
%sellchest_count% - Number of owned SellChests
%sellchest_earnings% - Total earnings from all chests
%sellchest_sold% - Total items sold across all chests
%sellchest_time% - Time until next sale (nearest chest)
%sellchest_nearest_items% - Items per sale of nearest chest
%sellchest_nearest_freq% - Sell frequency of nearest chest
%sellchest_nearest_perc% - Price percentage of nearest chest
Display stats on scoreboards, chat messages, or menus - fully compatible with all PAPI renderers.
Full Code Audit - 520 Lines Removed
Every Java file has been reviewed, optimized, and cleaned.
◆ Architecture Improvements
Extracted SalesProcessor class (170 lines of focused sale logic) · Centralized NBT writing method (eliminated 3x duplicate code) · Deduplicated upgrade GUI handler (140 lines into unified method) · Removed dead ConfigManager.java (200+ lines of unused code)
◆ Performance Optimizations
Removed duplicate map lookups in listeners · Cached NamespacedKeys in ChestPlaceListener · Partitioned processing with configurable batch size · Notification system with offline player timeout
◆ Number Formatting
All sale values and item counts now display with comma separators: 1,234,567 instead of 1234567. Clean, professional, readable at a glance.
Bug Fixes
V Memory Leak - Notification map grew indefinitely for offline players. Now cleaned up with 10-minute timeout.
V Data Loss - toggleRemoveUnsellableItems changes were not saved to disk (missing markDirty). Fixed.
V Hologram NPE - removeAllHolograms could crash if world was unloaded during shutdown. Safe-guarded.
V HologramTask NPE - Could crash if player was teleporting between worlds. Added null-check.
V ConfigManager NPE - Accessed MessageManager before initialization. Class was dead code, removed entirely.
V Economy NPE - Added null-check for EconomyType.getFromString("VAULT") in sales processor.
V Tab Complete - /sellchest top was missing from tab completer. Added.
V Plugin Reload - Old notification task was not cleaned up on reload. Properly shut down now.
V Version String - plugin.yml showed "unspecified". Now uses Gradle expansion: 1.3.0.
V Language Mixing - English file contained Polish words in lore keys. All 6 files verified clean.
V Log Consistency - All console messages standardized to English (were mixed Polish).
V RuntimeException Anti-Pattern - Replaced with clean boolean return flow for economy rollback.
Removed Dead Code
ConfigManager.java - 200+ lines of unused upgrade code
processSellChestSales() - unused method, replaced by partitioned processing
checkFAWE() - never-called method that always returned false
hasAnyProtectionPlugin() - unused utility method
Duplicate NBT writing - 3 identical code blocks, now one centralized method
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Technical Specs
|
Version
|
1.3.0
|
|
Release Date
|
June 2026
|
|
Server
|
Paper 1.21+ · Java 21
|
|
Languages
|
EN · PL · DE · RU · ES · FR
|
|
Placeholders
|
7 PAPI placeholders
|
|
Sound Tiers
|
5 levels + GUI feedback
|
Update from v1.0.0
Just replace the jar. All your data, settings, and chests are preserved. The plugin automatically updates config files to the new format while keeping every value you've customized. New language files are added automatically.
Zero manual migration. Drop in and go.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Statistics
Views
Purchases
Downloads
File size
Published
Updated
Info
Share & Earn
Share and earn part of the profits, an estimated €0.4 per product sale.