# Developer Overview Barrier is a world border plugin for Paper servers that supports circle, square, and 3D box border types. The Barrier-API module lets other plugins control borders programmatically — set radius, change border shape, configure storm damage, and listen to border events. --- ## Maven / Gradle The Barrier-API artifact is hosted on JitPack. Add it as a `compileOnly` dependency so that Barrier is not shaded into your plugin jar. **JitPack Repository:** *Gradle (Kotlin DSL):* ```kotlin maven("https://jitpack.io") ``` *Maven:* ```xml <repository> <id>jitpack.io</id> <url>https://jitpack.io</url> </repository> ``` **Dependency:** *Gradle (Kotlin DSL):* ```kotlin compileOnly("com.github.Lodestones:Barrier-API:1.0.34") ``` *Maven:* ```xml <dependency> <groupId>com.github.Lodestones</groupId> <artifactId>Barrier-API</artifactId> <version>1.0.34</version> <scope>provided</scope> </dependency> ``` Add `Barrier` as a `depend` or `softdepend` in your `plugin.yml`: ```yaml softdepend: - Barrier ``` --- ## Accessing the API The API is accessed through the static `BarrierAPI` class. The API instance is available after Barrier has been enabled. ```java import gg.lode.barrierapi.BarrierAPI; import gg.lode.barrierapi.IBarrierAPI; IBarrierAPI api = BarrierAPI.getApi(); if (api == null) { // Barrier is not loaded return; } ``` --- ## Common Operations ### Get the storm (border) for a world ```java IStorm storm = api.getStorm(world); ``` ### Set the border radius ```java storm.setRadius(500); double radius = storm.getRadius(); ``` ### Change the border type ```java import gg.lode.barrierapi.StormType; storm.setStormType(StormType.CIRCLE); storm.setStormType(StormType.SQUARE); storm.setStormType(StormType.SQUARE_BOXED); ``` ### Configure storm damage ```java storm.setDamage(2.0); storm.setDamageBuffer(5.0); ``` ### Listen to border events ```java import gg.lode.barrierapi.event.PlayerEnterStormEvent; import gg.lode.barrierapi.event.PlayerLeaveStormEvent; import gg.lode.barrierapi.event.PlayerDamageByStormEvent; @EventHandler public void onEnterStorm(PlayerEnterStormEvent event) { Player player = event.getPlayer(); // Player crossed into the storm } @EventHandler public void onLeaveStorm(PlayerLeaveStormEvent event) { Player player = event.getPlayer(); // Player returned inside the border } @EventHandler public void onStormDamage(PlayerDamageByStormEvent event) { // Cancel or modify storm damage event.setCancelled(true); } ``` --- ## Related Pages - [[Barrier/Developers/API Reference]] — Full interface documentation