# GriefPrevention3D v17.4.4
**Wiki:** https://github.com/castledking/GriefPrevention3D/wiki
## Highlights
- **3D admin claims** — New `Admin3D` shovel mode creates free, height-bounded administrative claims. Includes `/3dadminclaims` command and `/aclaim mode admin3d` subcommand.
- **Verbose piston feedback** — When a piston is broken by a claim boundary, the nearest player with build permission now receives a message explaining where and why, with a conflict-zone visualization of the blocking claim.
- **Trapped command fixes** — `handleTrappedCommand` brought to parity with the inline handler: correct check ordering, proper GPFlags destination forwarding, nether/end guard, and silent pending-rescue suppression.
- **New command aliases** — Added `/3dsc`, `/sc3d`, `/subdivide3d`, `/3dsubdivide`, `/adminclaim3d`, `/adminclaims3d`, and others to match the tau fork's alias set.
## 3D Admin Claims
A new `Admin3D` shovel mode lets administrators create free, height-limited claims using exact Y coordinates (not the usual ground-extension offset).
### Commands
| Command | Aliases | Description |
|---------|---------|-------------|
| `/3dadminclaims` | `adminclaim3d`, `adminclaims3d`, `3dadminclaim` | Switch shovel to 3D admin claim mode |
| `/aclaim mode admin3d` | — | Same via unified command |
Requires the `griefprevention.adminclaims` permission.
### Behavior
- Claims created in `Admin3D` mode use the clicked Y coordinates directly as the vertical bounds — no ground-extension offset is applied.
- Free to create (no claim blocks consumed) and owner ID is null, making them standard admin claims.
- Minimum size and claim block checks are bypassed, identical to regular `Admin` mode.
Affected files: `ShovelMode.java`, `Messages.java`, `GriefPrevention.java`, `UnifiedAdminClaimCommand.java`, `Alias.java`, `PlayerEventHandler.java`, `plugin.yml`.
## Verbose Piston Feedback
Previously, when a piston was broken by a claim boundary in precise mode, the player who placed it received no feedback — only the claim owner on the other side was notified via `ClaimBoundaryViolationTracker`.
GP3D now also notifies the **piston owner side**: the nearest online player with build permission in the piston's claim (or within 32 blocks if the piston is outside any claim) receives:
- A warning message: *"The piston at x, y, z exploded because it couldn't enter the claim at [location]"*
- A `CONFLICT_ZONE` boundary visualization of the claim that blocked the push
The existing `ClaimBoundaryViolationTracker` dedup/burst notifications to the invaded claim's owner are preserved unchanged.
Affected file: `BlockEventHandler.java`, `Messages.java`.
## Trapped Command Fix
`handleTrappedCommand` (used by the unified `/claim` command handler) had several divergences from the inline `onCommand` implementation:
- **Wrong pending message** — sent `RescueAbortedMoved` when `/trapped` was already pending; it now silently returns (consistent with tau and the inline handler).
- **Lost GPFlags destination** — `SaveTrappedPlayerEvent` was fired but its destination was discarded; the destination is now forwarded to `PlayerRescueTask`.
- **Missing nether/end guard** — rescue is now blocked in the nether and end when no external destination is provided.
- **Check order** — `pendingTrapped` is now checked before the claim/permission checks, matching the upstream order.
- **Spurious event cancellation check** — `SaveTrappedPlayerEvent` is not cancellable; the dead `isCancelled()` branch was removed.
Affected file: `GriefPrevention.java`.
## New Aliases
Added missing aliases to match the tau fork's command set:
| Command | New aliases added |
|---------|------------------|
| `3dsubdivideclaims` | `3dsc`, `sc3d`, `subdivide3d`, `3dsubdivide` |
| `adminclaims` | `aclaims` |
| `3dadminclaims` *(new)* | `adminclaim3d`, `adminclaims3d`, `3dadminclaim` |
| `/aclaim mode` standalone | `3dadminclaims` |
Affected files: `plugin.yml`, `Alias.java`.
## Migration
No data migration required.
The new `3dadminclaims` command and its aliases are registered automatically on server start. No config changes are needed.
New permission used (inherits existing `griefprevention.adminclaims` node — no new node required):
- `griefprevention.adminclaims` — now also gates `/3dadminclaims` and `/aclaim mode admin3d`.
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }