Unofficial site, not affiliated with modrinth.com.What is this?
Плагины/GriefPrevention3D
GriefPrevention3D

GriefPrevention3D

A fork of GriefPrevention that adds 3D subdivisions

1.5K
4

GriefPrevention3D v17.4.4

release12 мая 2026 г.

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 fixeshandleTrappedCommand 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

CommandAliasesDescription
/3dadminclaimsadminclaim3d, adminclaims3d, 3dadminclaimSwitch shovel to 3D admin claim mode
/aclaim mode admin3dSame 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 destinationSaveTrappedPlayerEvent 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 orderpendingTrapped is now checked before the claim/permission checks, matching the upstream order.
  • Spurious event cancellation checkSaveTrappedPlayerEvent 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:

CommandNew aliases added
3dsubdivideclaims3dsc, sc3d, subdivide3d, 3dsubdivide
adminclaimsaclaims
3dadminclaims (new)adminclaim3d, adminclaims3d, 3dadminclaim
/aclaim mode standalone3dadminclaims

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.

GriefPrevention3D v17.4.3

release7 мая 2026 г.

GriefPrevention3D v17.4.3

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

Highlights

  • Unified command hardening — Fixed several standalone command edge cases and permission checks.
  • PlaceholderAPI support — Added a small optional GP3D PlaceholderAPI expansion.
  • More claim protections — Added protections for animal mounting, entity unleashing, hanging entities, and weaving cobwebs.
  • QuickShop-Hikari compatibility — Restore-nature now preserves QuickShop shop signs.
  • Claim expiration exemption — Players with the griefprevention.dontexpire permission are now skipped by inactive-claim cleanup when Vault is installed.

Unified Commands

The unified command handler now handles standalone aliases more carefully:

  • Explicit empty standalone: lists in alias.yml now disable standalone aliases for that subcommand instead of falling back to enum defaults.
  • Standalone no-argument commands now reject extra arguments instead of forwarding unexpected input.
  • Standalone commands can now use custom tab completion where needed.
  • Unified subcommands now check their configured permission before execution.
  • /shapedclaims, /claim mode shaped, /3dsubdivideclaims, and /claim mode 3d now consistently enforce their dedicated permissions.

Affected files: CommandAliasConfiguration.java, UnifiedCommandHandler.java, UnifiedClaimCommand.java, UnifiedAdminClaimCommand.java, GriefPrevention.java, plugin.yml.

PlaceholderAPI

Added optional PlaceholderAPI integration with identifier gp3d.

New placeholders:

  • %gp3d_in_subdivision%true when the player is inside any subdivision.
  • %gp3d_in_3d_subdivision%true when the player is inside a 3D subdivision.

PlaceholderAPI is a soft dependency. The expansion registers automatically when PlaceholderAPI is installed.

Affected files: pom.xml, plugin.yml, PlaceholderAPIExpansion.java, GriefPrevention.java.

Protection Fixes

Animal mounting requires access trust

Players now need Access trust to mount claimed rideable animals. /ignoreclaims still bypasses this for administrators.

Affected file: PlayerEventHandler.java.

Entity unleashing requires container trust

When theft prevention is enabled, players now need Container trust to unleash entities inside claims. /ignoreclaims still bypasses this for administrators.

Affected file: PlayerEventHandler.java.

Hanging entity protection

Item frames, paintings, and other hanging entities are now protected from additional edge cases:

  • physics breaks caused by projectiles or nearby updates while the supporting block still exists
  • direct non-player damage
  • player/projectile damage without Build permission
  • explosion damage events

Affected file: EntityEventHandler.java.

Weaving cobwebs no longer trip block-change protection

The Weaving potion effect can now create cobwebs from living-entity deaths without being caught by unrelated entity block-change protections.

Affected file: EntityEventHandler.java.

QuickShop-Hikari Compatibility

Restore-nature now detects QuickShop shop signs by their persistent data key and preserves both:

  • the shop sign itself
  • the block supporting the shop sign

This prevents GP3D restore-nature operations from silently removing QuickShop shop signs through direct block restoration.

Affected files: BlockSnapshot.java, RestoreNatureProcessingTask.java.

Claim Expiration Bypass

If Vault is installed, claim expiration now honors:

  • griefprevention.dontexpire

Players with that permission are skipped by the inactive-claim cleanup task.

Affected files: CleanupUnusedClaimPreTask.java, plugin.yml.

Migration

No data migration required.

New optional integrations:

  • Install PlaceholderAPI to use the new %gp3d_*% placeholders.
  • Install Vault plus a permissions provider to use griefprevention.dontexpire.

New permissions from v17.4.2 remain default-true:

  • griefprevention.shapedclaims
  • griefprevention.3dsubdivideclaims

GriefPrevention3D v17.4.1

release2 мая 2026 г.

GriefPrevention3D v17.4.1

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

This release pulls in fixes for a batch of long-standing upstream GriefPrevention bugs that hadn't been merged in their tracker yet.

Upstream Issue Fixes

Workstations no longer treated as theft (#2587)

Grindstones, looms, stonecutters, and cartography tables are now usable in claims by players without trust — same as crafting tables. These are pure crafting workstations with no persistent inventory (any items left in them drop to the floor on close), so the PreventTheft path no longer applies to them.

Affected file: PlayerEventHandler.java.

TNT-above-sea-level chat spam fixed (#2586)

The "TNT will not destroy blocks above sea level" warning is now rate-limited per-player to once every 10 seconds. Map-art builders and large TNT placements no longer flood chat with one message per block.

Implementation: a new tntAboveSeaLevelWarningTimestamp field on PlayerData gates the message in BlockEventHandler.onBlockPlace.

Ender Dragon breath now damages players in PvP-protected claims (#2577)

The PvP "lingering potion" handler used to cancel any AreaEffectCloud damage when the defender was inside a PvP-protected claim. That accidentally included the Ender Dragon's breath attack, which made dragon fights trivial whenever the End island was an admin claim.

The handler now only intervenes when the cloud's source is a Player. Mob-sourced clouds (the dragon, plus any future mob that produces an AreaEffectCloud) pass through normally.

Affected file: EntityDamageHandler.handlePvpDamageByLingeringPotion.

Copper trapdoors honor LockTrapDoors (#2550)

The trapdoor-locking path now uses a robust isLockableTrapdoor() helper that checks both Tag.TRAPDOORS and falls back to a _TRAPDOOR name suffix match. Copper trapdoors (and any future trapdoor variants) are protected even on Bukkit API versions where Tag.TRAPDOORS doesn't yet include them.

Affected file: PlayerEventHandler.java.

Player data corruption on storage read failure (#2589 / #666)

When the data store (database or flat-file) failed to read a player's record — most commonly a transient MySQL wait_timeout / EOFException — the failure was silently swallowed and a fresh PlayerData with default values was returned. On the player's next save, those defaults were written back, permanently destroying the player's accrued and bonus claim blocks. This has been a long-standing upstream bug that resets players to zero blocks even when their actual claims are still on disk.

GP3D now flags failed reads via a new loadFailedFromStorage field on PlayerData. Both DatabaseDataStore and FlatFileDataStore set this flag when a read genuinely fails (vs. legitimately returning no row for a brand-new player). The save path in both backends refuses to persist a flagged PlayerData, so the on-disk record is preserved until a successful re-load happens. The player can still play this session with conservative defaults; their real record stays intact.

Affected files: PlayerData.java, DatabaseDataStore.java, FlatFileDataStore.java.

Brushing loophole closed

The previous brush protection only ran on PlayerInteractEvent, which fires once when the player starts brushing. Because brushing is tick-driven and the targeted block can change while the player keeps right-click held, players could start brushing a block outside a claim, walk into the claim, and let the brush complete on a claimed SUSPICIOUS_SAND/SUSPICIOUS_GRAVEL block — bypassing the original check.

GP3D now also listens to EntityChangeBlockEvent and re-checks Build permission at the moment the suspicious block transitions to its loot result. The check is restricted to actual brushing transitions (SUSPICIOUS_SAND -> SAND, SUSPICIOUS_GRAVEL -> GRAVEL) with a held-brush guard, so unrelated entity-driven block changes are not affected.

Affected file: PlayerEventHandler.onPlayerBrushComplete.

Migration

No configuration changes or data migration required. All fixes are behavior changes that take effect immediately on update.

GriefPrevention3D v17.4.0

release1 мая 2026 г.

GriefPrevention3D v17.4.0

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

Highlights

  • More translatable messages — Added CommandRequiresPlayer key for console-command error messages.
  • Plugin metadata — Added authors and website fields to plugin.yml.

Translatable Messages

Added new Messages enum key:

  • CommandRequiresPlayer — Sent when a player-only command is used from console. Default: "This command can only be used by players."

This is now used by /buyclaimblocks and /sellclaimblocks in UnifiedClaimCommand instead of a hardcoded string. Customize it in plugins/GriefPreventionData/messages.yml.

Plugin Metadata

Updated plugin.yml with additional metadata:

  • description: "The self-service anti-griefing plugin for Minecraft servers — now with full 3D subdivisions"
  • website: https://castled.codes
  • authors: [CASTLEDKING, RoboMWM, BigScary]

Migration

No configuration changes or data migration required. The new CommandRequiresPlayer key will be added to your messages.yml automatically on next load if missing.

GriefPrevention3D v17.3.9

release27 апреля 2026 г.

GriefPrevention3D v17.3.9

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

Highlights

  • Fix duplicate permission messages - Ender pearl access denial messages now only send once on Purpur/Folia
  • Folia fix - Boundary violation alert scheduler now correctly uses the Folia-safe SchedulerUtil instead of Bukkit.getScheduler() directly
  • Rename back to GriefPrevention - Renaming to 'GriefPrevention3D broke compatibility with GPFlags and other plugins that depend on GriefPrevention by name.

Fix Duplicate Permission Messages

On Purpur and Folia servers, both PlayerTeleportEvent and ProjectileHitEvent fire for ender pearls. Previously, both handlers would send the "You don't have player's permission to use that" message when access was denied, resulting in 2-3 duplicate messages.

Fixed by adding a deduplication check in PlayerTeleportEvent handler — it now skips sending the message if ProjectileHitEvent already handled the denial (tracked via the existing refundedByProjectileHitEvent set).

Folia Fix

The boundary violation alert scheduler in ClaimBoundaryViolationTracker was calling Bukkit.getScheduler().runTaskLater() directly, which is not available on Folia servers.

Fixed to use SchedulerUtil.runLaterGlobal() — the existing Folia-safe adapter used throughout the rest of the plugin. This routes through Folia's GlobalRegionScheduler when present and falls back to Bukkit.getScheduler() on Paper/Spigot.

Migration

No configuration changes or data migration required.

Совместимость

Minecraft: Java Edition

26.1.x1.21.x1.20.x

Поддерживаемые окружения

Сервер

Создатели

Детали

Лицензия:GPL-3.0-only
Опубликован:9 месяцев назад
Обновлён:1 день назад
Главная