Skip to content

These docs describe Bloom 0.1.0, a pre-release. APIs may change before 1.0, and Bloom is not on Maven Central yet (see Installation).

Introduction

What Bloom is, which servers it runs on, and how these docs are organised.

Bloom is a Java framework for Minecraft plugins on Bukkit-family servers. It gives you one API for the things almost every plugin needs, and runs the same plugin on two very different generations of Minecraft:

  • Legacy: Bukkit, Spigot and PaperSpigot 1.7.10 to 1.8.9 on Java 8, the home of most PvP and HCF servers.
  • Modern: Paper 1.21.1 to 1.21.11 on Java 21 and 26.1 to 26.3.x on Java 25.

Between them, Bukkit's API changed in ways that break compiled plugins: methods changed return types, classes became interfaces, materials were renamed and text moved to components. Bloom compiles your plugin against the oldest API, identifies the server when it starts, and loads a version adapter that handles the differences.

What you get

AreaModuleHighlights
Corebloom-bukkitOne-line startup, platform detection, scheduler, messages, events
Menusbloom-guiLayouts, pagination, back navigation, confirmation dialogs, duplication-safe clicks
Itemsbloom-itemsModern material names everywhere, persistent custom item ids, serialization
Configurationbloom-configDefaults, typed getters, validation with line numbers, migrations, comment-safe saves
Storagebloom-storageSQLite, MySQL and MariaDB off the main thread, transactions, migrations
Testingbloom-testingA tick-by-tick scheduler and a controllable clock

How Bloom thinks about versions

Bloom never pretends. If a server has no adapter, Bloom refuses to start and explains why. If a server lacks a feature (boss bars on 1.8, for example), Bloom reports it as a missing capability you can check, and each API documents what happens instead.

Where to go next