- Added environmental damage protection for protected entities.
- Protected entities are now safe from fire, lava, cactus, suffocation, drowning and other non-player damage sources.
- Fixed entity interaction handling so off-hand interactions can no longer bypass protection.
- Added protection against picking up bucketable entities inside protected areas.
- Expanded protected entity coverage for AbstractVillagers, Wandering Traders, Allays, ambient entities and Sniffers.
- Improved config self-healing.
- Improved world load handling by refreshing the protection area whenever the configured world loads.
- Improved /spl info to use cached protection flags.
New:
- Added piston protection.
- Added entity protection.
- Protects armor stands, item frames, glow item frames, paintings, villagers, animals, boats, minecarts and other decorative/passive entities.
- Added dispenser protection.
- Prevents dispensers/droppers from placing dangerous or protected items into the spawn area.
Improved:
- /spl info now shows Pistons and Entities protection status.
- /spl preview now cancels any previous active preview for the same player.
Config:
- Updated config-version to 5.
- Added:
- protections.pistons
- protections.entities
- messages.<lang>.no-entity
- Existing configs are migrated automatically with backup.
- Fixed PvP protection so attacks are blocked when either the attacker or the victim is inside the protected area.
- Added protection against filling buckets from water/lava sources inside the protected area.
- Added support for physical interactions such as pressure plates, farmland trampling and turtle eggs.
- Fixed preview permissions: /spl preview now requires spawnprotection.preview or admin permission.
- Added English fallback for missing or invalid configured languages.
- Added validation for invalid spawn radius values.
- Added repeater and comparator interaction protection.
- Limited fluid flow checks to water and lava only.
### Fixed
- Fixed `FireListener` not respecting the protection configuration in some cases.
- Fixed fire spread and block burning being cancelled even when the related protection setting was disabled.
- Fixed admin bypass not being respected properly for some fire-related events.
- Fixed `FLINT_AND_STEEL` being partially allowed in protected areas.
- Fixed a case where players outside the protected radius could ignite fire inside the protected area by clicking protected border blocks.
- Fixed fire-starting item checks by validating:
- the player location
- the clicked block location
- the target fire location
- Fixed radius preview being visually misleading when `check-y-axis: true`.
### Improved
- Improved `FireListener` consistency with the rest of the protection system.
- Improved `InteractListener` checks for fire-starting items.
- Improved `/spawnprotection preview`:
- prevents preview with invalid radius values
- stops if the player changes world
- displays three circles in spherical mode to better represent 3D protection
- Improved internal code cleanup by removing unused dead code.
### Improved
- Simplified `/spawnprotection info` output.
- `/spawnprotection info` now shows a clearer summary of the current protection setup.
- World mode information is now displayed in a cleaner way.
- Improved `/spawnprotection preview` safety checks.
Server owners can now protect either a spawn radius or an entire lobby/hub world, set a custom protection center in-game, and preview the protected radius with particles.
### Added
- Added `protection-area.mode`.
- `radius` protects an area around the configured center.
- `world` protects the entire configured world.
- Added full world protection mode.
- Ideal for dedicated lobby or hub worlds.
- No WorldGuard regions required.
- No complex setup required.
- Added custom protection center support.
- Use `/spawnprotection setcenter` to set the protection center at your current location.
- Use `/spawnprotection resetcenter` to return to the configured world spawn.
- Added radius preview.
- Use `/spawnprotection preview` to display the protected radius with particles.
- Helps server owners clearly see where protection starts and ends.
- Added new config options:
```yaml
protection-area:
mode: "radius"
spawn:
use-custom-center: false
center:
x: 0.5
y: 64.0
z: 0.5
### Improved
- Expanded the list of protected interactable blocks inside spawn.
- Added protection for more storage, utility, decorative and functional blocks.
- Improved protection for decorated spawn areas and server lobbies.
### Added Protection For
- Hoppers
- Dispensers
- Droppers
- Brewing stands
- Beacons
- Enchanting tables
- Grindstones
- Looms
- Stonecutters
- Cartography tables
- Smithing tables
- Fletching tables
- Composters
- Jukeboxes
- Note blocks
- Bells
- Respawn anchors
- Decorated pots
- Chiseled bookshelves
- Beds
- Signs and hanging signs
- Cauldrons
- Campfires
### Added
- Added support for `BlockExplodeEvent`.
### Changed
- Explosions that start inside the protected spawn radius are now cancelled completely.
- Explosions that start outside the protected radius still cannot destroy protected blocks inside the spawn area.
- `protections.explosions` now applies to both entity-based and block-based explosions.
### Fixed
- Fixed a small protection gap where players could still use `FIRE_CHARGE` to start fires inside the protected spawn area.
- Fire-starting item protection now covers both:
- `FLINT_AND_STEEL`
- `FIRE_CHARGE`
### Improved
- Improved command message formatting consistency.
- `/spawnprotection help` and `/spawnprotection info` now use the same internal color formatting utility as the rest of the plugin.
## SpawnProtection v1.2.0 — Better Spawn Area Configuration
### Added
- Added `spawn.world`.
- Server owners can now choose which world spawn should be protected.
- SpawnProtection no longer depends on the first loaded world.
- Added `spawn.check-y-axis`.
- `false`: uses cylindrical protection based only on X/Z distance.
- `true`: uses spherical protection including height difference.
- Added protection mode details to `/spawnprotection info`.
- Protected world
- Radius
- Protection mode
- Y-axis check status
- Configured language
- Added a built-in config migration system.
### Changed
- SpawnProtection now uses the configured world from `spawn.world`.
- Radius checks now support both cylindrical and spherical protection.
- Cylindrical protection is now the default mode.
- Renames **SpawnProtectionLite** to **SpawnProtection** and introduces a cleaner command structure while keeping backwards compatibility.
### New
- New main command: `/spawnprotection`
- Added aliases: `/spl`, `/spawnprotectionlite`
- Added `/spawnprotection help`
- Added `/spawnprotection info`
- Added improved tab completion
- Added new permission nodes:
- `spawnprotection.admin`
- `spawnprotection.reload`
- `spawnprotection.info`
- `spawnprotection.bypass`
### Changed
- Rebranded the plugin from SpawnProtectionLite to SpawnProtection
- Updated plugin.yml, logs, permissions and configuration comments
- Improved `/spawnprotection reload` to fully reload internal settings
### Compatibility
- Legacy command `/spawnprotectionlite` still works
- Legacy permissions still work:
- `spawnprotectionlite.reload`
- `spawnprotectionlite.bypass`
- No config migration required
- Protection behavior remains unchanged