
Xshards
Xshards is a Minecraft plugin that introduces a shard-based economy, enabling players to earn shards through gameplay, purchase items from a public shop, and manage their shard balances with various commands.
Changelog
All notable changes to the Xshards plugin are documented in this file.
[1.2.9] - 2026-04-16
Fixed
-
Shop: items could be received without paying / lost shards on purchase. The shop listener now uses
getRawSlot()and only reacts to clicks inside the shop's top inventory, so clicks in the player's own inventory no longer trigger purchase flows. Shards are now deducted before the item is delivered, the player's balance is re-verified at confirm time, and any items that don't fit in a full inventory are dropped at the player's feet so they never lose what they paid for. The pending-purchase state is also cleared when the confirm GUI is closed without a choice. Fixes the "I can take items from the shard shop without paying" report. -
Database path mismatch (
XShardsvsXshards). The default SQLite path inconfig.ymlwasplugins/XShards/storage/xshards.db(capital S) while the plugin's data folder isXshards. The default has been corrected toplugins/Xshards/storage/xshards.db.Upgrade note: if you were running 1.2.8 or earlier, you'll have existing data in
plugins/XShards/storage/xshards.db. Either move that file toplugins/Xshards/storage/xshards.db, or setstorage.sqlite.file: plugins/XShards/storage/xshards.dbin yourconfig.ymlto keep the old path. -
SQLite errors: "stmt pointer is closed" / "database has been closed" / "Database connection lost. Reconnecting..." spam. The previous
DatabaseManagerreturned a single shared JDBC connection that callers would then close viatry-with-resources, which closed the shared connection out from under any other thread mid-query (e.g. the AFK task and PlaceholderAPI/DecentHolograms refreshes hitting the leaderboard and AFK status).DatabaseManager.getConnection()now returns a fresh connection per call, so each query is fully isolated. SQLite connections also enable WAL journal mode and a 5s busy timeout for better concurrent read/write behaviour. -
/shards remove <player> <amount>now works from the console. Previously the console branch only acceptedgive. Console, command blocks, and RCON can now useremoveas well, enabling custom commands and admin scripts to debit a player's balance without thegive <player> -Nworkaround.
Changed
- Startup banner now reads the version from
plugin.ymlinstead of a hard-coded string (was stuck atv1.2.4). ShardCommandnow rejects non-positive amounts up front with the existing "invalid amount" message, so admins can't accidentally invert a give/remove with a negative number.
-
Xshards Changelog
[1.2.8] - 2026-04-08
Fixed
- Fixed critical bug where players could take items from the store (
/store) for free without purchasing them. The shop inventory click protection was not being triggered due to a title mismatch caused by color codes, allowing players to freely drag items out of the GUI.
- Fixed critical bug where players could take items from the store (
ersion 1.2.7 - Shop GUI Customization (Database Edition)
Features:
- NEW: Customize shop inventory title in config.yml (store.title)
- NEW: Per-item custom display names (editable via /store editname
) - NEW: Per-item custom lore (editable via /store editlore
<line1|line2|...>) - NEW: Global default lore for all shop items in config.yml
- NEW: Full color code support (&a, &c, etc.) for all customizations
- Support for {price} placeholder in lore
Database Schema Updates:
- Added
display_namecolumn to shop_items table (VARCHAR 256 / TEXT) - Added
lorecolumn to shop_items table (LONGTEXT / TEXT) - Backward compatible - existing shops auto-migrate
New Commands:
/store editname <slot> <name>- Set custom display name for item/store editlore <slot> <line1|line2|...>- Set lore with | as separator
Configuration Example:
store: title: "&6Custom Shop Name" default-lore: - "&7Price: {price} shards" - "&8Click to purchase"Data Storage:
- Per-item customizations saved in database (MySQL/SQLite)
- Global settings configured in config.yml
- Changes via commands immediately persist to database
Technical Updates:
- Updated version to 1.2.7
- Added display_name and lore fields to ShopItem class
- Updated DatabaseManager table creation for both MySQL and SQLite
- Enhanced ShopManager with batch save/load for customizations
- Added setItemDisplayName() and setItemLore() methods
- Tab completion for editname and editlore commands
Нет описания изменений
Version 1.2.5 - Global Message Control and Configuration Improvements
Features:
- Added global and per-message toggle support in messages.yml
- Every message in the plugin can now be disabled by setting it to an empty string or using a new toggle system
- Added message-enabled toggles for all shard earning methods in config.yml
Changes:
- Improved message handling for better performance
- Updated default messages.yml with documentation for disabling messages
Technical Updates:
- Updated version to 1.2.5
- Refactored MessageManager to handle empty/null messages gracefully
Version 1.2.4 - Shard Management Expansion and PAPI Fixes
Features:
- Added /shards remove
command for administrators - Added custom messages for shard removal in messages.yml
Changes:
- Improved PlaceholderAPI (PAPI) expansion reliability and persistence
- Updated admin help menu to include shard removal command
Technical Updates:
- Updated version to 1.2.4
- Enhanced XshardsPlaceholder with persist() and canRegister() methods
- Added removeShards methods to ShardManager and ShardData
- Added /shards remove
Version 1.2.3 - Shard Transfer, Leaderboard, and Daily Rewards
Features:
- Added Shard Transfer system for player-to-player economy
- Added GUI Leaderboard with pagination and player head display
- Added Daily Rewards system with automatic login bonuses
- Added Streak Multiplier system (Easy/Mid/Hard modes)
- Added configurable message system (100+ message keys)
Changes:
- Transfer command with confirmation dialog
- Leaderboard displays rank, player name, and shard amount
- 7 players per page with navigation buttons
- Daily rewards track consecutive logins and reset on missed days
- All messages customizable via messages.yml
New Commands:
- /transfer
- Transfer shards to player - /leaderboard [page] - View leaderboard with pagination
Technical Updates:
- Added TransferCommand and TransferListener
- Added LeaderboardManager with database queries
- Added LeaderboardCommand and LeaderboardListener
- Added DailyRewardManager with streak tracking
- Added StreakData class for player streak information
- Implemented GUI pagination system
- Enhanced database queries for leaderboard sorting
- Updated version to 1.2.3
Version 1.2.2 - Database Storage and AFK System Improvements
Features:
- Added database storage support (SQLite and MySQL)
- Completely redesigned AFK system with countdown and movement detection
- Added free movement while in AFK mode
- Added protection from damage while in AFK mode
- Added dedicated world support recommendations for AFK
- Improved data persistence and reliability
Changes:
- Replaced YAML file storage with database storage
- Added 5-second countdown with movement detection for AFK
- Removed movement restrictions while in AFK mode
- Added automatic database table creation
- Added support for switching between SQLite and MySQL
- Improved AFK teleportation safety
- Added prevention of Nether/End AFK location setting
- Reduced database connection logging spam
Technical Updates:
- Implemented DatabaseManager for handling database connections
- Added proper connection pooling and error handling
- Improved data loading and saving performance
- Enhanced plugin stability with better data management
- Added boss bar for AFK countdown
- Improved database connection reliability
- Optimized database connection reuse
- Updated plugin version to 1.2.2
Version 1.2.1 - Console Shard Management
Features:
- Added ability to give shards from console
- Improved command handling for both console and players
Changes:
- Console can now use /shards give
command - Updated command usage descriptions
- Improved feedback messages for console commands
Technical Updates:
- Enhanced command executor to handle non-player senders
- Updated plugin version to 1.2.1
- Improved command parameter validation
Version 1.2.0 - AFK System Improvements
Features:
- Added persistent player location storage for AFK system
- Improved AFK location handling after server restarts
- Added automatic AFK data cleanup on server shutdown
- Enhanced location restoration when quitting AFK mode
Changes:
- Players now return to their exact previous location after AFK
- Location data persists through server restarts
- Removed need for manual /quitafk after server restart
- Added proper cleanup of AFK data on server shutdown
Technical Updates:
- Added playerlocations.yml for persistent location storage
- Improved AFK data management system
- Enhanced error handling for location saving/loading
- Added automatic AFK state cleanup on server start
Version 1.1.0 - Initial Release
Features:
- Implemented comprehensive shard economy system
- Added multiple shard earning methods (playtime, PvP, AFK)
- Created customizable shop system with GUI
- Added support for custom items with lore and model data
- Implemented AFK system with safe teleportation
- Added PlaceholderAPI integration
Changes:
- Added configuration options for all earning methods
- Implemented shop size configuration (9-54 slots)
- Added price editing system for shop items
- Created purchase confirmation interface
- Added admin commands for plugin management
- Implemented permission system
- Added help command with detailed information
- Created comprehensive configuration file
Technical Updates:
- Added support for custom item metadata
- Implemented safe data saving system
- Added reload command for configuration
- Created tab completion for commands
- Implemented proper event handling
- Added proper cleanup on plugin disable
Нет описания изменений
Нет описания изменений


