Welcome to the Hangar Open Beta. Please report any issue you encounter on GitHub!
Avatar for rewrite123

Craft bottles of enchanting by using an empty bottle on an enchanting table.

Report craftablebottleofenchanting?

craftablebottleofenchanting

Craft Bottles o' Enchanting at enchanting tables and recover empty bottles after throwing them. For Paper 26.3 / Java 25, with no runtime dependencies.

Bottle Experience

Right-click an enchanting table with glass bottles in your main hand to open a custom menu with one action, Bottle Experience. Click it to convert one glass bottle into one Bottle o' Enchanting for 11 raw XP points, with no lapis. Keep the input bottles in the hotbar slot used to open the menu. The output is placed in your inventory, merging with compatible stacks when possible.

Normal enchanting is unchanged when you open the table without glass bottles. This is a custom menu, not an enchantment added to the vanilla enchanting list. No bookshelves are required. Each click converts one bottle; shift-clicking, number keys, dragging, and taking the display item are blocked. Nothing is consumed if XP or output space is insufficient. Armor and offhand items are untouched. Stay within six blocks of the table; removed tables cannot be used.

All game modes pay the same XP cost. Spectators cannot use the menu. The craftablebottleofenchanting.use permission defaults to true. Cancelled table-interaction events are respected.

When any thrown Bottle o' Enchanting breaks, one glass bottle drops at its impact location, including dispenser-thrown bottles. Normal XP drops (3-11 XP) remain unchanged. Charging 11 points prevents gaining XP by repeatedly bottling and throwing, under vanilla XP-drop rules. Other plugins may change those drops. Cancelled impacts do not produce a bottle. Drops obey normal item physics and may be destroyed by hazards.

Build and install

./gradlew build

Gradle runs on Java 17+ and provisions Java 25 for compilation if needed. Windows users can use gradlew.bat. Copy build/libs/craftablebottleofenchanting-0.1.0.jar into your Paper server's plugins/ directory, then restart using Java 25.

Run ./gradlew test for conversion and event-handling tests. Tests use the available MockBukkit 26.2 registry harness; production compiles against Paper 26.3. Smoke-test the menu, protected enchanting tables, and bottle impacts on your Paper 26.3 server before production deployment.

Publish to Hangar

Uses HangarMC's official publishing plugin. Create the project and supply HANGAR_API_TOKEN with create_version permission:

./gradlew build publishPluginPublicationToHangar \
  -PhangarChangelog="Initial release: bottle experience without lapis and recover glass bottles."

Defaults: project craftablebottleofenchanting, channel Release, Paper 26.3. Set a unique version for each release in gradle.properties. Never commit API keys. Normal builds do not upload anything.

Information

Category
Gameplay
Published
October 18, 2026
License
Unspecified
0Downloads
0Stars

Pinned Versions

Members

1