> For the complete documentation index, see [llms.txt](https://docs.ohalee.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ohalee.com/products/ultimateoneblock/for-developers.md).

# For Developers

## Events

UltimateOneBlock fires a set of custom Bukkit events under `com.ohalee.ultimateoneblock.api.event`. Register a normal Bukkit `Listener` to handle them.

```java
com.ohalee.ultimateoneblock.api.event.GeneratorDestroyEvent
com.ohalee.ultimateoneblock.api.event.GeneratorPlaceEvent
com.ohalee.ultimateoneblock.api.event.IslandDeleteEvent
com.ohalee.ultimateoneblock.api.event.NewPhaseEvent
com.ohalee.ultimateoneblock.api.event.PlayerFlyEvent
com.ohalee.ultimateoneblock.api.event.PlayerIslandEnterEvent
com.ohalee.ultimateoneblock.api.event.PlayerIslandLeaveEvent
com.ohalee.ultimateoneblock.api.event.RoleChangeEvent
```

## Accessing the managers

The main class `com.ohalee.ultimateoneblock.UltimateOneBlock` exposes its managers through **static, fluent accessors** — you do not need a plugin instance.

{% hint style="warning" %}
The plugin is registered under the name **`OneBlock`** (not `UltimateOneBlock`), so `Bukkit.getPluginManager().getPlugin("OneBlock")` is the correct lookup if you ever need the `JavaPlugin` itself. For the managers, prefer the static accessors below.
{% endhint %}

{% code title="Managers" %}

```java
import com.ohalee.ultimateoneblock.UltimateOneBlock;

UltimateOneBlock.database();          // Database
UltimateOneBlock.playerManager();     // PlayerManager
UltimateOneBlock.islandManager();     // IslandManager
UltimateOneBlock.generatorManager();  // GeneratorManager
UltimateOneBlock.configManager();     // ConfigManager
UltimateOneBlock.economy();           // IEconomy (Vault or default)
UltimateOneBlock.hologramProvider();  // Class<? extends IHologram>
```

{% endcode %}

## Provider interfaces

The `api` package also defines pluggable provider interfaces you can implement to integrate with your own systems:

* `com.ohalee.ultimateoneblock.api.economy.IEconomy` — economy backend used for the reset cost.
* `com.ohalee.ultimateoneblock.api.hologram.IHologram` — hologram backend (implementations exist for HolographicDisplays, DecentHolograms, FancyHolograms and CMI).
