# GriefPrevention3D v18.3.14
**Wiki:** https://github.com/castledking/GriefPrevention3D/wiki
## Overview
- **New:** `/scrollresize` — resize claims and subdivisions with the mouse wheel and a live preview.
- **Permissions:** every claim and admin command now has its own permission node, so a single command can be negated
without removing the rest of `griefprevention.claims` or `griefprevention.adminclaims`. Denials send the plugin's
own "no permission" message everywhere.
- **Changed:** `/claimpvp` now needs manager trust in the claim instead of edit permission.
- **Fix:** `Claims.Allow3DSubdivisions` and `Claims.Allow3DAdminClaims` are now written to `config.yml`.
- **Fix:** 3D subdivision outlines that are one block wide or one or two layers tall now draw correctly.
- **Fix:** clicking a second spot on a shaped claim's boundary in `/shapedclaims` placed the segment marker next to
the previous one instead of where you clicked.
## /scrollresize
Hold your claim tool and run `/scrollresize` (or `/claim scrollresize`, aliases `/sr`, `/src`).
**Which claim:** the claim or subdivision you're looking at or standing in — including 3D subdivisions too small to
stand inside, like a 1x1x1 — or the claim you selected by right-clicking one of its corners.
**Which side:** the side your line of sight hits. From outside a claim that's the side facing you (the top when you
look down on it); from inside, it's the side you're looking at. Right-clicking a corner first limits the resize to the
sides at that corner (two on a 2D claim, plus the top or bottom on a 3D claim). On shaped claims and shaped
subdivisions the side is the segment you're standing in front of and facing, the same one `/expandclaim` moves, or one
of the two edges at a selected corner.
**Scrolling follows your camera:** scrolling up pushes the side away from you and scrolling down pulls it toward you,
one block per notch. Looking down at a 1x1x1 subdivision, scroll down raises its top and scroll up brings it back to a
single layer.
**Preview:** the new outline is drawn through GriefPrevention's normal visualization event, so fake-block and glowing
borders — and visualization addons that hook that event — show it. Nearby claims and the parent claim's other
subdivisions are shown too. The outline turns red if it would overlap another claim, stick out of its parent, cut into
its own subdivisions, or cost more claim blocks than you have; the action bar shows the size and remaining claim
blocks. (Servers without an action bar API, such as 1.8.8, get conflicts in chat right away and size updates in chat
once you stop scrolling.)
**Applying and cancelling:**
- **Right-click** applies the resize, through the same checks as the golden shovel. If the preview shows a conflict,
the session stays open so you can scroll back.
- **Left-click, drop (Q), swap hands (F, 1.9+), a number key, switching off the claim tool, changing worlds, or a
minute without scrolling** cancels it and restores the claim's real outline.
Subdivisions never cost claim blocks. Shaped segments can be pulled inward into a notch, stopping at the last valid
shape. New permission: **`griefprevention.scrollresize`** (default `true`, child of `griefprevention.claims`).
## Per-command permissions
Upstream GriefPrevention gated most claim commands behind `griefprevention.claims`, so negating one command meant
losing all of them. GP3D now gives each command its own node under a parent bundle:
- **Commands check their own node.** `plugin.yml` commands, `/claim` and `/aclaim` subcommands, and the standalone
aliases configured in `alias.yml` all check the command's specific permission. For example: `/claim untrust` checks
`griefprevention.untrust`, `/claim pvp` checks `griefprevention.claimpvp`, `/claim trust <player> access` checks
`griefprevention.accesstrust`, and `/claim abandon all` checks `griefprevention.abandonallclaims`.
- **One denial message.** Every denial sends `NoPermissionForCommand` from `messages.yml` — including Bukkit's own
`plugin.yml` permission check and dynamically registered aliases, which previously sent generic English text.
- **New nodes under `griefprevention.claims`** (default `true`): `griefprevention.trustlist`,
`griefprevention.claimalerts` (`/claim alerts`), and `griefprevention.toggleclaimalerts` (`/claimtogglealerts`,
which previously used an undeclared node and so only worked for operators).
- **New nodes under `griefprevention.adminclaims`** (default `op`): `griefprevention.3dadminclaims`,
`griefprevention.adminclaimslist`, and `griefprevention.deletealladminclaims` (which also still requires
`griefprevention.deleteclaims`). `/aclaim transfer` checks `griefprevention.transferclaim`, and `/aclaim delete`
checks `griefprevention.deleteclaims`, `griefprevention.deleteclaimsinworld`, or `griefprevention.deletealladminclaims`
depending on what is being deleted.
- **Previously undeclared nodes are now declared** (default `op`): `griefprevention.deleteclaimsinworld`,
`griefprevention.deathblow`, and `griefprevention.eavesdrop.immune`.
Everyone who has `griefprevention.claims` or `griefprevention.adminclaims` keeps the same access as before; the
change only makes negating individual commands possible.
## /claimpvp needs manager trust
Toggling PvP in a claim now requires manager trust (owners, players given `/managetrust`, and staff with
`griefprevention.adminclaims` on admin claims) instead of edit permission, and the command permission is
`griefprevention.claimpvp` instead of `griefprevention.claims`. Players without manager trust see the claim's
"you don't have permission to manage permissions here" message.
## 3D config options now generate
`Claims.Allow3DSubdivisions` and `Claims.Allow3DAdminClaims` were read but never written back, so they never appeared
in `config.yml`. They are now added with their current values (default `true`) the next time the server starts.
## 3D subdivision previews
Very small 3D subdivisions put several outline markers on the same block: a one-block-wide ring collapses into a
column, a one-layer subdivision drew the same ring twice, and the white wool markers of a two-layer subdivision landed
on the other ring's corners. Which marker appeared was random, so these subdivisions looked unchanged while resizing.
Each block is now drawn once with corners winning, one-layer subdivisions draw a single ring, and the wool markers only
appear when there's a gap between the top and bottom rings. This applies everywhere 3D subdivisions are shown,
including the golden shovel and investigation tool.
## Shaped claim segment markers
In `/shapedclaims`, the first click on a claim boundary places a segment marker and starts a reshape path from it. A
second click elsewhere on the same boundary was read as the next point of that path and snapped to the block next to
the first marker. A path that hasn't left the boundary yet is now dropped when you click another spot on the same
boundary, so the new marker goes exactly where you clicked. Reshaping outward, cuts, and cross-claim merges work as
before.
## Upgrade notes
- **alias.yml:** existing files keep their values. If yours sets `subcommands.claim.pvp.permission:
griefprevention.claims`, you can change it to `griefprevention.claimpvp`; the command also checks
`griefprevention.claimpvp` either way.
- New messages are translated into every bundled locale.
- No storage changes. Drop-in replacement for v18.3.13.
Optional dependencies
VaultUnlocked
Any compatible version
QuickShop-Hikari
Any compatible version
PlaceholderAPI
Any compatible version
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" }