
ExpBottle
Withdraw and deposit experience points using experience bottles.
Автор: wilddip4393обновлён 8 мая 2025 г.
ЭкономикаМеханики игрыУтилиты
Описание
ExpBottle 🍾💧
Tired of losing your precious XP? 😤 ExpBottle to the rescue! 🚀 This Spigot plugin lets players bottle up their experience to use later or send to friends. All with style, custom messages, and slick MiniMessage formatting! ✨
🔥 Core Features
- XP Bottling & Retrieval:
/exp get [amount|amountL|all]- Turn XP into tradable bottles. - Direct XP Transfer:
/exp send <player> <amount|amountL|all>- Zap XP directly to others! - Bulk Bottling:
/exp split <amount|amountL>- Create multiple bottles of a fixed size. - Admin Gifting:
/exp give <player> <amount|amountL> [count]- Give bottles to players (works from console too!). - Universal Bottle Use: Standard experience bottles with stored XP work as expected.
- Seamless Interaction: Use chests, furnaces, etc., normally while holding a custom EXP bottle.
- Deep Customization:
- 🌍 Full Localization: Edit
lang/<locale_code>.ymlfiles (e.g.,en_US.yml,ru_RU.yml). Supports MiniMessage for awesome text formatting! - 🗣️ Smart Localization: Automatically detects player's language and uses the right translation from
lang/files. - 🔊 Sound Notifications: Customizable sound alert when receiving XP from another player.
- 📦 Inventory Management: Configure behavior for full inventories (
droporerror). - ✂️ Splitting Control: Set min/max levels/XP and steps for
/exp split.
- 🌍 Full Localization: Edit
- Permission-Based: Fine-grained control over who can do what.
- Instant Reload:
/exp reload- Apply config changes without a server restart.
🎮 Commands & Permissions
All commands start with /exp (or your configured alias).
| Command | Description | Permission | Aliases |
|---|---|---|---|
/exp | Shows your current XP info. | expbottle.use | (none) |
/exp get [amount[L] | all] | Withdraws XP into a bottle. amount = XP, amountL = levels. Defaults to all. | expbottle.get | g |
/exp send <player> [amount[L] | all] | Sends XP directly to another player. Format as above. | expbottle.send | (none) |
/exp split <amount[L]> | Creates multiple bottles of a fixed amount or amountL. | expbottle.split | s |
/exp give <player> <amount[L]> [count] | Gives specified count of bottles with amount or amountL XP to a player. Works from console! | expbottle.give | (none) |
/exp help | Shows this help menu. | expbottle.help | h |
/exp reload | Reloads the plugin configuration. | expbottle.reload | (none) |
Understanding Amounts:
100= 100 experience points.10L= 10 experience levels.all= All your current experience (not applicable for/splitor/giveamount per bottle).
⚙️ Configuration
ExpBottle is highly configurable!
-
config.yml:default_language: e.g.,en_US,ru_RU.command.name&command.aliases: Customize your command.bottle_lore: Define the look of your XP bottles. Use MiniMessage!- Placeholders:
<player>,<amount_xp>,<full_levels>,<amount_lvl>.
- Placeholders:
sound_settings.*: Configure sounds for different actions (see details below).command.get.inventory_full_action: Action on full inventory (droporerror).command.split.*: Parameters for the split command (min levels, step, etc.).- (... and other general settings if any)
-
Sound Settings (
sound_settings) Details:get:enabled: true|false- Sound when using/exp get.name: "SOUND_NAME"- Bukkit sound name (e.g.,ENTITY_ITEM_PICKUP).volume: 1.0pitch: 1.0
send_receive:enabled: true|false- Sound for the recipient of/exp sendor/exp give.name: "SOUND_NAME"(e.g.,ENTITY_PLAYER_LEVELUP).volume: 1.0pitch: 1.0
split:enabled: true|false- Sound when using/exp split.name: "SOUND_NAME"(e.g.,BLOCK_AMETHYST_BLOCK_CHIME).volume: 1.0pitch: 1.0
-
lang/Directory (e.g.,lang/en_US.yml):- All player-facing messages are here! The plugin smartly picks the right file based on each player's client language!
- Uses MiniMessage for colors, formatting, and hover/click events.
- Example MiniMessage:
<green>Success! <yellow><player></yellow> received <blue><amount_xp></blue> XP.</green> - Placeholders are generally
<placeholder_name>.
📦 Installation
- Download the latest
ExpBottle-X.X.X.jarfrom the Releases page. - Drop it into your Spigot server's
pluginsfolder. - Restart or load the plugin on your server.
- Done! Configure as needed. 🎉
🙏 Authors & Credits
- Original concept & initial versions: BrannStroom
- Current maintainer & refactor: wilddip
🛠️ Building from Source
Feeling adventurous? Use Maven:
mvn clean package
Find your fresh JAR in the target directory.
Последние версии
Все версии →release
ExpBottle 2.1.1
2.1.18 мая 2025 г.400Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5bukkit, paper, purpur, spigot
Что нового
fix: ✨ Stack sizes & improvements.
- `bottle_max_stack_size` added to `config.yml` (default 16).
- `give` & `split` now use this for correct slot calculation.
- `<required>` in `give.error.target_inventory_full` now shows slots.
release
ExpBottle 2.1.0
2.1.07 мая 2025 г.38Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5bukkit, paper, purpur, spigot
Что нового
## 🎉 Version 2.1.0: Enhanced Localization & Slick Code Refactor
feat(core): ✨ Enhance localization & refactor codebase 🧹
Localization:
- 🗑️ Remove unused `send.error.not_enough_generic` message key.
- 💬 Update `split.success` messages for clarity, using separate keys:
- `base_levels` (e.g., "10 levels")
- `base_points` (e.g., "100 XP")
This provides more accurate descriptions instead of "10L".
Refactor:
- 🏗️ Structure all Java files with `#region` / `#endregion` blocks for improved code navigation and readability. Existing comments preserved. 🤓
Chore:
- 📖 Update `README.md` to reflect changes in `/exp split` success messages.
- 🧼 Minor cleanup in `ExpCommand.java` related to `send.error.not_enough_generic` removal.
This update focuses on refining user-facing messages for the split command and significantly improving the internal code structure for better maintainability. Let's make ExpBottle even better! 🚀