GriefPrevention3D

A fork of GriefPrevention that adds 3D subdivisions

File Details

GriefPrevention3D v18.1.4

  • R
  • Jun 18, 2026
  • 797.37 KB
  • 8
  • 26.2+45

File Name

GriefPrevention3D.jar

Supported Versions

  • 26.2
  • 26.1.2
  • 26.1.1
  • 26.1
  • 1.21.5-Snapshot
  • 1.21.11
  • 1.21.10
  • 1.21.9
  • 1.21.8
  • 1.21.7
  • 1.21.6
  • 1.21.5
  • 1.21.4
  • 1.21.3
  • 1.21.2
  • 1.21.1
  • 1.21
  • 1.20.3-Snapshot
  • 1.20.5-Snapshot
  • 1.20.6
  • 1.20.5
  • 1.20.4
  • 1.20.3
  • 1.20.2
  • 1.20.1
  • 1.20
  • 1.19.4
  • 1.19.3
  • 1.19.2
  • 1.19.1
  • 1.19
  • 1.18.2
  • 1.18.1
  • 1.18
  • 1.17
  • 1.16
  • 1.15
  • 1.14
  • 1.13
  • 1.12
  • 1.11
  • 1.10
  • 1.9
  • 1.8.3
  • 1.8.1
  • 1.8

v18.1.4: YAML formatting fixes and sulfur cube (26.2) protection

GriefPrevention3D v18.1.4

Wiki: GriefPrevention3D Wiki

Fixes

YAML string escaping in messages_en.yml

Fixed incorrect YAML quoting across messages_en.yml. Strings using double quotes with embedded literal quotes ("\"...\"...") were replaced with single-quoted strings and proper apostrophe escaping (''`). This eliminates YAML parser warnings and ensures message text renders correctly.

Example fix:

# Before (double-quoted with escaped quotes)
NoDamageClaimedEntity: "That belongs to {0}."
NoDeletePermission: "You don't have permission to delete claims."

# After (single-quoted, internal quotes escaped with '')
NoDamageClaimedEntity: 'That belongs to {0}.'
NoDeletePermission: 'You don''t have permission to delete claims.'

MessageLocalization package relocation

MessageLocalization.java moved from me.thiagorigonatti.griefprevention.util to me.ryanhamshire.GriefPrevention, removing stale imports for InputStream, Properties, StandardCharsets, and List. The locale normalization utility (normalizeLocale) and language folder initializer (ensureLanguageFiles) now live in the main package, consistent with the rest of the localization loading in DataStore.loadMessages().

Features

Sulfur cube claim protection (Minecraft 26.2+)

Added full claim-based protection for the new Sulfur Cube mob introduced in Minecraft 26.2 "Chaos Cubed". Since sulfur cubes use a unique physics-based push mechanic (not standard entity damage events), two intercept points are required:

Punch (left-click) protectionSulfurCubeHandler.java

  • Listens for PlayerAnimationEvent (ARM_SWING) and raycasts for SULFUR_CUBE entities in the player's line of sight
  • Checks Build permission in the claim at the cube's location
  • If denied, the push is undone by teleporting the cube back to its original position and resetting velocity on the next tick
  • Sends existing NoDamageClaimedEntity message
  • Handles both survival (3-block) and creative (5-block) reach distances

Right-click protectionPlayerEventHandler.onPlayerInteractEntity

  • Blocks block insert/swap/retrieve interactions on sulfur cubes inside claims without Container permission
  • Gated behind config_claims_preventTheft, consistent with Animals/Fish/CopperGolem protection
  • Uses the same NoDamageClaimedEntity + IgnoreClaimsAdvertisement message pattern

Version compatibility: No version detection needed. All checks use EntityType.name().equals("SULFUR_CUBE") string comparison. On pre-26.2 servers, no entity will match — the handlers are no-ops.

Compatibility

Category Support
Minecraft Versions 1.8.8 -> 26.2.x
Minimum Java Java 8
Bukkit API Target 1.13