1.0-SNAPSHOT
Compatibility
Changes
Dragon Block Plugin
A Paper / Folia plugin (1.21.x) that prevents the Ender Dragon from destroying blocks — unless they're explicitly whitelisted by the server administrator.
Purpose
When players fight the Ender Dragon, the dragon destroys large swaths of terrain as it flies through blocks. On survival / anarchy / kit servers this can:
- Gut end-island farms (chorus, endermen)
- Destroy bridges, pathways, and builds near the portal
- Leave the End dimension permanently scarred
This plugin intercepts both pathways the dragon destroys blocks:
| Pathway | Event handled | Behaviour |
|---|---|---|
| Dragon flying through blocks | EntityChangeBlockEvent |
Cancelled unless block is whitelisted |
| Dragon / fireball explosions | EntityExplodeEvent |
Non-whitelisted blocks removed from explosion |
Config
File: plugins/dragon-block-plugin/config.yml
# Block names are Material enum values (case-insensitive).
# Empty list = dragon cannot destroy ANY blocks.
whitelisted-blocks: []
Example — allow only obsidian and end stone
whitelisted-blocks:
- OBSIDIAN
- END_STONE
Full list of block Material names:
https://jd.papermc.io/paper/1.21/org/bukkit/Material.html
Commands
| Command | Permission | Description |
|---|---|---|
/dragonblock reload |
dragonblock.admin (OP by default) |
Reloads config.yml without a server restart |
/dragonblock |
dragonblock.admin |
Shows usage |
Permissions
| Node | Default | Description |
|---|---|---|
dragonblock.admin |
op |
Access to /dragonblock commands |
Installation
- Drop the JAR into your server's
plugins/folder - Restart the server (or use a plugin manager like PlugManX)
- Edit
plugins/dragon-block-plugin/config.ymlto whitelist blocks - Run
/dragonblock reloadto apply changes
Compatibility
| Platform | Status |
|---|---|
| Paper 1.21.x | ✅ Fully supported |
| Folia 1.21.x | ✅ Fully supported (folia-supported: true) |
| Spigot 1.21.x | ⚠️ Untested — the Brigadier command API requires Paper |
The plugin uses Paper's Brigadier command API and the Adventure component API. It does not use BukkitScheduler — events fire on the correct region thread in both Paper and Folia.
Build
Requirements: JDK 21+
./gradlew build
# JAR → build/libs/dragon-block-plugin-1.0-SNAPSHOT.jar
Run a test server (requires Paper 1.21.x in Gradle cache):
./gradlew runServer
License
MIT — do whatever you want.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:5FihdWbN:hqlMrsj0"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:5FihdWbN:hqlMrsj0"
}

