Skip to content

v1.2.4: choose what your locator bar shows, and limit abandoning by claim ID

Choose a tag to compare

@castledking castledking released this 17 Sep 00:03

GPExpansion v1.2.4

This release lets each player choose which claims appear on their vanilla locator bar. It also
adds permissions that limit abandoning a claim by ID to the claim you are standing in, makes the
Abandon button in the claim options GUI handle subdivisions, and replaces the long startup log
with a short banner.

The Maven project version is now 1.2.4. New configuration entries, language keys and
permissions are added to existing installs automatically.

Locator Bar Modes

/claim bar [mode] and the new standalone /claimbar [mode] choose which claims appear on your
vanilla locator bar:

Mode Shows
own Only claims you own
trusted Your claims and claims you have access trust on
both Your claims, claims you can access, and published claims (the default)
off Nothing
  • Run the command without a mode to see your current one.
  • The change applies immediately. Each player's choice is saved to waypoint-modes.yml and
    survives restarts.
  • The command requires griefprevention.claim.bar, which defaults to true and is added to
    player-commands.
  • CrowBar clients are unaffected. They draw claim waypoints themselves, so the mode only changes
    the vanilla locator bar.
  • Admin claims no longer appear on the vanilla locator bar in any mode.
  • Changing the locatorBar game rule while the server is running now adds or removes waypoints
    straight away, instead of waiting for players to rejoin or change worlds.

Abandoning Claims by ID

/abandonclaim <id> and /abandontoplevelclaim <id> now go through GPExpansion, which adds two
permissions:

  • griefprevention.abandonclaim.anywhere
  • griefprevention.abandontoplevelclaim.anywhere

Both default to true, so nothing changes unless you negate them. A player without the matching
permission can only abandon a claim by ID while standing inside it or one of its subdivisions, as
the owner or with build trust. griefprevention.admin always bypasses the check.

Abandon commands without an ID are still handled by GriefPrevention, so the existing protection
for rented claims still applies.

Claim Options GUI

  • When a claim has subdivisions, the Abandon confirmation shows how many will be deleted.
  • Confirming abandons a claim that has subdivisions with /abandontoplevelclaim, so its
    subdivisions are removed along with it.

Quieter Startup

GPExpansion now prints one banner on startup. It shows the platform and version, the number of
claims loaded, whether rent signs, sell signs, mailboxes, claim flight, waypoints and
PlaceholderAPI are on, and how long startup took.

Routine startup messages such as listener registration, economy hooks and config migration steps
are now logged only when debug.enabled is true. Warnings and errors are still always logged.

Configuration and Language

  • player-commands gains abandonclaim.anywhere, abandontoplevelclaim.anywhere and
    claim.bar, added to existing configs automatically.
  • permissions.anywhere-denied is split into permissions.sign-anywhere-denied and
    permissions.command-anywhere-denied. Customised text from the old key moves to
    sign-anywhere-denied, and the old key is removed.
  • New language keys: claim.bar-*, claim.abandon-subdivision-warning and startup.*.
  • The bundled lang.yml had three separate claim: sections. They are now merged into one.
  • New data file: waypoint-modes.yml.

Compatibility

Built against GriefPrevention3D 18.2.7 and Paper 26.2. No storage migration is required.

Verification

  • mvn clean package completed successfully and produced target/GPExpansion.jar for version
    1.2.4.
  • The existing 10 unit tests pass. None of them cover the changes in this release.
  • Still to check on a live server: each /claimbar mode with a vanilla client and with CrowBar,
    toggling the locatorBar game rule, abandoning by ID with the .anywhere permissions negated,
    abandoning a claim with subdivisions from the GUI, and upgrading a lang.yml with custom
    anywhere-denied text.