Sueta

XpBottle

1.7.1

XpBottle [1.16+] – Plugin that allows players to store and transfer XP using secure custom XP bottles, perfect for survival, PvP, RPG, and economy servers

·Plugin
  1. 1.7.1latestXpBottle 1.7.1last week
    - Improved compatibility from Minecraft 1.16.5 to 26.3. - Fixed redemption of custom XP bottles. - Fixed items being lost when inventories are partially full. - Includes previous fixes for XP exploits, cooldowns, database saves, and permissions.
    8 downloads
  2. 1.7.0XpBottle 1.7.0last week
    This is a major bugfix release. Updating is strongly recommended as it fixes an XP duplication exploit.

    Bug Fixes

    Critical
    - XP duplication exploit — Negative amounts were accepted by the withdraw command (for example /xpbottle -1000 1), which gave players free XP instead of removing it. All amounts must now be strictly positive. - Cooldown never enforced — The withdraw cooldown was saved but never checked, so it had no effect. It is now applied before every withdrawal, and the waiting message shows the remaining time. - MySQL settings ignored — The plugin read database.mysql.host, database.mysql.port, etc. while the config file defines database.host, database.port, database.name, database.user and database.password. MySQL connections therefore always used the default values. The correct config keys are now used.
    Major
    - Silent data loss in SQL databases — Saving a player ran a plain UPDATE that silently failed when the row did not exist yet. Saves now use an upsert (ON DUPLICATE KEY UPDATE for MySQL, ON CONFLICT DO UPDATE for SQLite), so no player data is lost anymore. - Tab completion did not work — The TabCompleter was never registered, so /xpbottle had no tab completion. It is now registered (and re-registered on reload) for subcommands, suggested amounts and player names. - `min-exp` and `max-exp` were never applied — These config options existed but were never checked. They are now enforced, with dedicated error messages.
    Minor
    - Integer overflow — The total cost (amount x bottles) is now computed in 64-bit and rejected if it exceeds the int range, preventing corrupted bottles. Redeeming a full stack while sneaking is also computed in 64-bit. - Invalid sound name — An invalid sound name in the config no longer causes an error on redeem; the default sound is used as a fallback. - ItemsAdder fallback — If the configured itemsadder_id item cannot be found, the plugin now falls back cleanly to a vanilla bottle instead of failing. - Update checker — A local version newer than the published one is no longer reported as "update available". - Permissions — The children of xpbottle.admin pointed to non-existent permissions (xp.admin.*). They now point to the plugin's real admin permissions (xpbottle.give, xpbottle.take, xpbottle.reset, xpbottle.reload).

    Optimizations

    - Bottle generation — Bottles are now created once and distributed as stacks instead of rebuilding the same item N times. This significantly reduces NBT serialization for large withdrawals. - NBT key caching — The NamespacedKey used to identify XP bottles is cached in the listener instead of being recreated on every interaction and craft check. - Thread-safe SQL access — The shared JDBC connection is now protected against simultaneous access from asynchronous tasks, eliminating a corruption risk on SQLite and MySQL. - Safer reload — /xpbottle reload no longer clears running cooldowns (they can no longer be bypassed by asking for a reload) and keeps the tab completer registered. - Withdraw sound — The previously unused sound.withdraw config option is now played on withdrawal.
    50 downloads
  3. 1.6.2XpBottle 1.6.24 weeks ago

    Corrections and additions

    - Completing the /xpbottle help with the take and reset commands. - Fixed helper syntax for XP withdrawal and give command, with XP per bottle and number of bottles parameters. - Added missing messages to lang.yml: player not found, invalid number, negative levels, player-only command, and XP reset confirmations. - Replaced hardcoded player messages with keys loaded from lang.yml. - Added a configurable message in lang.yml when a translation key is not found. - Updated the `xpbottle command and permission. reset in plugin.yml`. - Configurable protection of XP bottles against renaming at the anvil and their use in crafts, while leaving them tradable.
    110 downloads
  4. 1.6.1XpBottle 1.6.1May 31, 2026
    Ajout tooltip_style: "tooltip:tooltip/name" in config.yml bottle: tooltip_style: "tooltip:tooltip/common" ....
    359 downloads
  5. 1.6.0XpBottle 1.6.0May 31, 2026
    ✨ v1.6.0
    🚀 Improvements
    - 🎨 Improved color correction system for consistent rendering across all items - 🌈 Enhanced RGB → in-game color conversion accuracy - ⚙️ Unified color processing pipeline for stable results
    🔧 Changes
    - 📦 itemsadder_use updated: - ❌ Removed legacy support: custom-model-data: 0 - ✅ Added new format: itemsadder_id: "namespace:name_id"
    🛠 Fixes
    - 🧩 Fixed inconsistent color rendering on textured items - 🧼 Resolved color parsing glitches affecting visual output - 🔒 Improved overall stability of the color processing system
    13 downloads
  6. 1.5.0XpBottle 1.5.0May 23, 2026
    redesign of code and .yml files config.yml lang.yml
    52 downloads
  7. 1.2.5XpBottle 1.2.5Apr 4, 2026
    new messages in messages.yml
    65 downloads
  8. 1.2.0XpBottle 1.2.0Mar 30, 2026

    ✨ What's new

    💰 Conversion tax (configurable) Added a cost system when converting XP to bottles Allows you to define a percentage of XP lost Example: 5% XP consumed when using /xpbottle ⏳ Cooldown (configurable) Added a delay between each use of /xpbottle Helps limit spam and balance gameplay Fully customizable via config 🔐 Protected bottles Added an XP bottle protection system: Protection during drop (anti-theft / security) Option to prevent bottles from falling to the ground upon death All options can be activated/deactivated in the configuration ⚙️ Setup All new features are 100% configurable Independent activation/deactivation of each system
    21 downloads
  9. 1.1.0XpBottle 1.1.0Mar 13, 2026
    redesign of controls and improvement
    30 downloads
  10. 1.0.0XpBottle 1.0.0Jan 29, 2026
    159 downloads

Similar projects

Plugin →