Перейти к содержимому
Mineforgian

GPExpansion

The ultimate add-on for GriefPrevention 3D Subdivisions

Загрузки
377
Подписчики
4
Обновлён
26 июня 2026 г.
Лицензия
GPL-3.0-only

Опубликован 2 января 2026 г.

Extend GriefPrevention with rental signs, mailboxes, and more

GPExpansion adds powerful features to GriefPrevention including rental signs, claim mailboxes, global claims, rental snapshots, claim GUIs, sign protection, and more — all while maintaining the self-service philosophy.

Haven't heard of GriefPrevention 3D Subdivisions? Get it here to enable mailbox support. This is a fork that replaces the GriefPrevention jar.

Supported Platforms

Spigot, Paper, Purpur, and Folia

Requires GriefPrevention and optionally Vault for economy features.

Optionally, replace GriefPrevention with GriefPrevention3D for seamless mailboxes (1x1x1 subdivisions and public container trust). Mailboxes will work with regular GP and there is a config setting called mailbox-protocol: virtual that helps if you want to be able to stack mailboxes on top of each other.

Features

Rental Signs

Allow claim owners to rent out their claims to other players using signs.

  • Set rental prices and durations
  • Automatic trust/untrust on rental start/expiry
  • Supports Vault economy, experience, claim blocks, and item-based payments
  • Interactive setup wizard with /rentclaim command
  • Rental Snapshots – Save and restore claim state between renters
Setting up a rental sign manually

Sell Signs

Allow claim owners to sell their claims to other players using signs.

  • Set claim prices
  • Automatic transfer of ownership of claim
  • Supports Vault economy, experience, claim blocks, and item-based payments
  • Interactive setup wizard with /sellclaim command
Setting up a sell sign manually

Claim Mailboxes

Give each claim a mailbox where other players can deposit items.

  • Owners have full access to retrieve items
  • Non-owners see a virtual inventory (snapshot at open time)
    • Changes save only when the menu closes
    • Can take back items before closing (reversible deposits)
    • Items returned if mailbox fills up while viewing
  • Chest opening sound/animation on sign click
  • Storage warnings when mailbox is nearly full
  • Purchasable via signs with configurable prices
  • Interactive setup wizard with /mailbox command
Creating a self mailbox
Selling a mailbox to other players
Sharing a mailbox with other players

Self Mailboxes (Instant Creation)

  • Owners and renters can place [Mailbox] wall signs directly on containers in claims they own or rent
  • Configurable limit via defaults.max-self-mailboxes-per-claim
Protocol Type Subdivision Created Non-Owner View Live Updates Stackable
Real Protocol 1x1x1 (GP3D) or 1x1 2D (regular GP) Real chest with public container trust Yes No
Virtual Protocol None Virtual snapshot inventory No (snapshot at open time) Yes

Global Claims

Allow claims to be listed in a global claim list, viewable to all.

  • Set global settings like icon, description, name, spawn point, and more
  • Allows users to teleport to global claims via GUI by default
  • Allows [global] claim signs to instantly set spawn and list as global
  • Simple /claim global <true|false> command to manage global listing status

Sign Protection

Protect your rental and mailbox signs from unauthorized modification.

  • Admin-only sign breaking for active rentals
  • Automatic cleanup on sign removal

Rental Restoration Snapshots

Admins with griefprevention.restoresnapshot can save and restore claim block state for rentals. When a rental or eviction ends, the claim can be restored to a saved snapshot so the next renter sees the original build.

  • Create – Save the current claim blocks as a snapshot (e.g., before listing for rent)
  • List – View snapshots for a claim or for all claims
  • Restore – On eviction or rental end, the latest snapshot is applied automatically

Commands

  • /claim snapshot create [claimId] – Create a snapshot
  • /claim snapshot list [claimId|all] – List snapshots
  • /claim snapshot remove <snapshotId> – Delete a snapshot

Claim Management & GUIs

Interactive claim management with fully configurable GUIs:

  • /claim name <name> - Set claim name (supports color codes with permissions)
  • /claim desc <description> - Set claim description (uses same color permissions as name)
  • /claim icon <material> - Set claim icon for GUI display
  • /claim spawn - Set the teleport spawn point for your claim
  • /claim tp [claimId] - Teleport to a claim's spawn point
  • /claim flags [claimId] - Open the claim flags GUI (GPFlags)
  • /claim options [claimId] - Open the claim options GUI
  • /claim ban <player> - Ban players from your claims
  • /claim unban <player> - Unban players from your claims
  • /claim info [claimId] - View detailed claim information
  • /mailbox - Manage your mailboxes
  • /gpx reload - Reload configuration and language files
  • /gpx max - Manage player sign creation limits

Claim GUI Features

  • Visual claim map editor – Resize, subdivide, and manage claims via interactive GUI
  • Customizable layouts, icons, and permissions
  • Teleport to claims, view claim info, and manage settings from one interface
  • Integration with GPFlags for claim flag management

Configurable Tax System

Optional tax system for claim maintenance:

  • Configurable tax rates per claim block
  • Multiple payment methods (money, claim blocks, experience)
  • Grace periods before claim deletion
  • Tax exemptions via permissions

Documentation

Sign formats, configuration, permissions, and detailed guides All here

Support

Building from Source

git clone https://github.com/castledking/GPExpansion.git
cd GPExpansion
mvn clean install

The compiled jar will be in target/.

Built to extend GriefPrevention with love ❤️

Ченджлог

1.1.9Релиз26.1.1, 26.1.2, 26.2 · 26 июня 2026 г.

GPExpansion v1.1.9

New Features

Claim Ban Bypass Permission

  • Added griefprevention.claim.ban.bypass permission node allowing moderators and staff to bypass all claim ban enforcement (entry, teleport, and interact restrictions)
  • Configurable via claim-customization.bans.bypass-permission in config.yml (default: griefprevention.claim.ban.bypass)
  • This is a more granular alternative to the existing admin-bypass-permission (default: griefprevention.admin) — grant it to specific roles without giving full admin access
1.1.7Релиз26.1, 26.1.1, 26.1.2 · 12 июня 2026 г.

GPExpansion v1.1.7

Changes

Ban Enforcement Refactor

  • Extracted ejection logic into reusable ejectFromClaim method
  • Added getClaimMinY / getClaimMaxY helpers to GPBridge for vertical bounds
  • Simplified BanEnforcementListener using the new GPBridge methods
  • Added banlist subcommand support in tab completion and command list

Bug Fixes

  • Config overwrite on restart: Fixed a bug where the Config class and VersionManager operated on separate in-memory configs. When VersionManager called plugin.saveConfig(), it would overwrite disk changes made by the Config class — resetting values like claim-flight.passive-mode to their defaults on server restart.
  • Prevent repeated config backups: ensureVersion112Structure() now only runs when the config version is older than 1.1.2, preventing unnecessary backup files from being created on every server restart.

Migration

If you had the 1.1.2 config migration bug and ended up with multiple config.yml.backup_* files:

  1. The oldest backup is your pre-1.1.2 config (before any migration).
  2. The second oldest is your first post-migration 1.1.2 config (before the repeated backup bug kicked in).
  3. Any newer backups were created unintentionally each restart because the defaults: section was missing from the migrated file, causing ensureVersion112Structure() to re-trigger. With this fix, that no longer happens.

You can safely delete all backup files except the second oldest (which preserves your migrated config if anything goes wrong). If you prefer, you can also manually re-apply any custom config values like claim-flight.passive-mode: true — they will persist across restarts now.

1.1.6Релиз26.1, 26.1.1, 26.1.2 · 10 июня 2026 г.

GPExpansion v1.1.6

Wiki: https://github.com/castledking/GPExpansion/wiki

Fixes

  • GP3D trust detectionisTrusted() now falls back to hasExplicitPermission(UUID, ClaimPermission) when the standard reflection patterns (e.g. getBuilders(), getBuildTrusted()) aren't found. GP3D's Claim class never had those methods — it uses a UUID/Enum-based permission model. This fixes claim flight, the trust editor GUI pre-selection, and any other feature relying on getTrustLevels().
  • String/UUID mismatch in trust lookupsisTrusted() now normalises collection entries via normalizeTrustedEntries() before checking containment. GP stores player names as String in trust lists; comparing a UUID against a String collection always missed.
  • /gpx reload picks up rent sign limitssignLimitManager.reloadConfig() is now called in reloadAll(), so changes to signs.rent.limits.max-signs take effect without a server restart.
  • /claim evict / /cancelrent subclaim resolutionresolveClaimContext() now calls findSubclaimAt() to use the subclaim ID instead of the parent claim ID when a rental sign is on a subdivision.

Migration

  • No config changes needed.
1.1.5Релиз26.1, 26.1.1, 26.1.2 · 9 июня 2026 г.

GPExpansion v1.1.5

Wiki: https://github.com/castledking/GPExpansion/wiki

Fixes

  • Claim fly in subclaims/claimfly now respects trust inherited from the parent claim. Previously, players trusted on the main claim but standing in a subclaim would be denied flight because the trust check only looked at the subclaim's own trust list.
  • Manager flag access — Players with permissiontrust (manager-level trust) can now toggle claim flags via /claim flags. Previously only the owner or .other permission holders could access the flags GUI.
  • Rental ID resolution/claim evict and /cancelrent now correctly resolve rental data by the subclaim ID instead of the parent claim ID. If a rental sign was placed on a subclaim, operations targeting it failed because the rental was stored under the subclaim ID but the code was looking it up under the parent.
  • Sign limit config defaults — Added signs.rent.limits.max-signs, signs.sell.limits.max-signs, signs.mailbox.limits.max-signs, signs.mailbox.limits.max-self-mailboxes-per-claim, and signs.global.limits.max-claims-per-player to the config defaults system so they are automatically added to existing configs on upgrade.

Migration

  • No config changes needed. Existing defaults.max-rent-signs and similar legacy keys continue to work as fallbacks.
1.1.4Релиз26.1, 26.1.1, 26.1.2 · 8 июня 2026 г.

GPExpansion v1.1.4

Wiki: https://github.com/castledking/GPExpansion/wiki

Fixes

  • Paper 1.21+ compatibility — Fixed IncompatibleClassChangeError when resolving Sound and Particle from config. Paper 1.21 changed Sound and Particle from enums to interfaces, breaking valueOf() lookups. Replaced with Registry.SOUNDS/Registry.PARTICLE_TYPE lookups via NamespacedKey.

Migration

  • Compatible with Paper 1.20.6 through 1.21.x — no config changes needed.
1.1.3Релиз26.1, 26.1.1, 26.1.2 · 8 июня 2026 г.

GPExpansion v1.1.3

Wiki: https://github.com/castledking/GPExpansion/wiki

Fixes

  • Claim flight disable-on-leaving-claim now works correctly/claimfly toggling inside a claim no longer causes players to retain flight when leaving the claim. The command was granting flight but not tracking it internally, causing the periodic reconciler to misidentify claimfly-granted flight as external (Essentials /fly).
  • Creative/spectator mode players bypass unsafe teleport confirmations (staff QoL).

Improvements

  • teleport.safe-location.staff-ignore-unsafe-location config option added (default: true) — players in CREATIVE or SPECTATOR game mode skip unsafe location confirmation when teleporting to claims.

Migration

  • Automatic config.yml migration to 1.1.3 structure with backup.
1.1.2Релиз26.1, 26.1.1, 26.1.2 · 6 июня 2026 г.

GPExpansion v1.1.2

Wiki: https://github.com/castledking/GPExpansion/wiki

New Commands

  • /cancelrent [claimId] — Renters can forfeit their rental. Supports griefprevention.claim.cancelrent.anywhere and griefprevention.claim.cancelrent.other permissions. Admins can cancel rentals on behalf of renters.
  • /globalclaimslist — Browse publicly listed claims in a GUI with sorting, search, and teleport.

Configuration Overhaul

The config.yml has been fully reorganized around feature areas with automatic migration from v1.1.0.

Check it out here: config.yml

Fixes

  • Config migration no longer drops resource-introduced sub-keys when preserving user values
  • Lang missing-key detection uses isSet() instead of contains() to avoid false-positives from JAR defaults
  • Mailbox listener, sign protection, and sign display fixes
  • Claim abandonment blocked during active eviction

Migration & Compatibility

  • Automatic config.yml migration to 1.1.2 structure with backup
  • Automatic lang.yml key sync from JAR resource defaults
  • GP3D 17.5.2 support
  • Paper API compatibility updates for GriefPrevention3D
1.1.1Релиз26.1, 26.1.1, 26.1.2 · 21 мая 2026 г.

GPExpansion v1.1.1

Wiki: https://github.com/castledking/GPExpansion/wiki/Claim-Block-Accruals

Highlights

  • Added permission-based claim block accrual profiles - Servers can now configure different claim block accrual rates, maximum accrued claim blocks, and maximum claim counts for default players, VIP groups, or one-off reward permissions.
  • Added /gpx accruals admin tools - Admins can inspect effective limits, edit configured groups, create/delete accrual groups, and apply per-player overrides without hand-editing config every time.
  • Added LuckPerms-aware group creation - New accrual groups can be sorted by LuckPerms weight, and * can inherit the highest value from lower-weighted groups when creating a new profile.
  • Added config repair for existing installs - Servers missing accruals.groups now get the new section inserted during config version migration instead of being left with an incomplete config.
  • Added GP3D event integration - Accrual profiles are applied when GriefPrevention3D accrues claim blocks and when players create top-level claims.

Feature

GPExpansion now manages GriefPrevention3D claim block accruals from config.yml:

accruals:
  groups:
  - name: default
    blocks-per-hour: 100
    max-blocks: 80000
    max-claims: 0
  - name: vip
    blocks-per-hour: 20
    max-blocks: 250000
    max-claims: 10
  - name: elite
    blocks-per-hour: 50
    max-blocks: 1000000
    max-claims: 20
    permission: elite-reward

Profiles can match by Vault/LuckPerms group name, by griefprevention.accruals.<group>, or by an optional one-off permission such as griefprevention.accruals.elite-reward.

max-claims: 0 disables the claim count cap for that profile.

Commands

New admin commands:

/gpx accruals check [player]
/gpx accruals group <group> set|add|remove <per-hour|max-blocks|max-claims|all> <amount>
/gpx accruals player <name> set|add|remove|reset <per-hour|max-blocks|max-claims|all> [amount]
/gpx accruals creategroup <name> [blocks-per-hour] [max-blocks] [max-claims] [permission]
/gpx accruals deletegroup <name>

Per-player overrides take precedence over the player's matched group profile and are only written after an admin sets them.

Pairing

This release should be paired with GriefPrevention3D v17.5.2.

Migration

Existing configs should receive the missing accruals.groups section automatically when GPExpansion updates its config version. If a config already has a valid accruals.groups section, GPExpansion leaves it untouched.

Комментарии

Загружаем…