
ExpBottle
Withdraw and deposit experience points using experience bottles.
- Загрузки
- 314
- Подписчики
- 3
- Обновлён
- 8 мая 2025 г.
- Лицензия
- MIT
Опубликован 7 мая 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.
Ченджлог
2.1.1Релиз1.21.3, 1.21.4, 1.21.5 · 8 мая 2025 г.
fix: ✨ Stack sizes & improvements.
bottle_max_stack_sizeadded toconfig.yml(default 16).give&splitnow use this for correct slot calculation.<required>ingive.error.target_inventory_fullnow shows slots.
2.1.0Релиз1.21.3, 1.21.4, 1.21.5 · 7 мая 2025 г.
🎉 Version 2.1.0: Enhanced Localization & Slick Code Refactor
feat(core): ✨ Enhance localization & refactor codebase 🧹 Localization:
- 🗑️ Remove unused
send.error.not_enough_genericmessage key. - 💬 Update
split.successmessages 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/#endregionblocks for improved code navigation and readability. Existing comments preserved. 🤓
Chore:
- 📖 Update
README.mdto reflect changes in/exp splitsuccess messages. - 🧼 Minor cleanup in
ExpCommand.javarelated tosend.error.not_enough_genericremoval.
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! 🚀
Комментарии
Загружаем…