LibelulaBuilder is a Spigot plugin focused on providing quality-of-life tools for builders.
The project currently targets Spigot 26.1 and provides per-world controls for environmental and physics-related events.
- Java 17 to build the plugin
- Java 25 or later to run a Spigot 26.1 server
- A Spigot 26.1 compatible server
Use the Gradle Wrapper included in this project:
.\gradlew.bat buildThe compiled plugin JAR will be created at:
build/libs/LibelulaBuilder-0.1.0.jar
/lb event/lb event <event> [enabled|disabled]/lb event all [enabled|disabled]/lb tools/lb blocks/lb head <player>/lb reload/lb plugin/lb plugin <plugin> [load|unload|restart]
All commands require the libelulabuilder.admin permission.
The tools, blocks, and head commands can only be used while the player is in creative mode.
The tools command skips configured items that the player already has in their inventory.
The blocks command also skips eligible block items that the player already has in their inventory.
The head command gives the requested player head and skips it when the same head is already present in the player's inventory.
Using /lb event in-game lists every supported event with its state for the current world, and the list includes clickable enable/disable shortcuts.
Using /lb event all shows whether the current world is fully enabled, fully disabled, or mixed.
Using /lb event all enabled or /lb event all disabled applies the same state to every supported event in the current world.
Event state changes are written to config.yml immediately.
Using /lb reload reloads config.yml, restores any missing default values, and reapplies per-world runtime settings immediately.
Using /lb plugin lists loaded and discovered plugin jars, and players receive clickable plugin management actions in chat.
Plugin unloading and restarting are implemented as best-effort runtime operations and are blocked when another loaded plugin depends on the target plugin.
LibelulaBuilder cannot load, unload, or restart itself while its own command is running.
When day-night is disabled, the plugin also enforces a frozen world time every tick so the cycle stays stopped even if another system re-enables the gamerule.
The plugin validates configured materials during startup and /lb reload, so invalid tool or block entries are always reported in the server log.
Global command settings are stored in the settings section:
settings:
tools:
items:
- WOODEN_AXE
- DEBUG_STICK
- LIGHT
- STRUCTURE_VOID
blocks:
radius: 15
excluded-materials:
- AIR
- BEDROCK
- CAVE_AIR
- VOID_AIRPer-world event states are stored at the root level of config.yml:
world:
block-physics: true
block-fade: true
day-night: trueblock-physics
block-fade
block-form
entity-block-form
block-grow
structure-grow
block-spread
block-from-to
fluid-level-change
leaves-decay
moisture-change
sponge-absorb
cauldron-level-change
block-burn
block-ignite
piston-extend
piston-retract
block-explode
entity-explode
entity-change-block
entity-interact
portal-create
weather-change
thunder-change
lightning-strike
day-night