# GriefPrevention3D v18.1.4
**Wiki:** [GriefPrevention3D Wiki](https://github.com/castledking/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:
```yaml
# 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) protection** — `SulfurCubeHandler.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 protection** — `PlayerEventHandler.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 |
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" }