▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Плагины/GriefPrevention3D
GriefPrevention3D

GriefPrevention3D

Форк популярного GriefPrevention с поддержкой 3D-субделений. Создавайте участки с точными границами по высоте - идеально для многоуровневых построек и сложных приватов на сервере Minecraft.

Оцените первым
5.3K
9
Все версииGriefPrevention3D v18.3.2

GriefPrevention3D v18.3.2

Release12.08.2026

Список изменений

GriefPrevention3D v18.3.2

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

Overview

v18.3.0 restored manage trust as its own track: a manager may edit a claim's trust list but does not implicitly receive build, container, or access trust. That change was correct, but the storage underneath it was not. A claim kept exactly one trust value per player, so granting manage trust overwrote whatever build, container, or access trust that player already had. Before v18.3.0 the overwrite was invisible, because manage trust used to imply every lower permission. After v18.3.0 it silently locked trusted players out of chests, doors, and blocks.

This release separates the two tracks in storage so they can be held at the same time, and finishes the /permissiontrust split that v18.3.0 started: /permissiontrust is now the command for granting trust to a permission node, and manage trust lives entirely under /managetrust.

Manage trust no longer erases interaction trust

A claim now tracks manage trust in its own set, alongside the build/container/access map.

  • /managetrust <player> adds manage trust and leaves existing trust untouched.
  • /trust, /containertrust, and /accesstrust no longer remove manage trust.
  • The order the commands are run in no longer matters.
  • /untrust <player> still removes everything, as before.

The same defect existed on every path that wrote trust, and all of them are fixed:

  • Loading a claim. Builders, Containers, Accessors, and Managers were applied in that order, so anyone listed under Managers had their interaction trust stripped on every server start. The lists are now independent.
  • Saving a claim. A player who holds both is written to both lists and round-trips correctly. The cross-platform document writer had a second copy of the same defect and dropped the build/container/access trust of anyone who was also a manager on its way to disk.
  • Creating a subdivision. The creating player was force-set to manage trust, discarding the build or container trust that had just been copied down from the parent claim.
  • Clearing inherited trust. Dropping an inherited copy of one kind of trust also dropped the other. Each track is now dropped on its own.
  • Permission-node trust. A [permission.node] entry granted manage trust is now evaluated against both tracks, so a node can carry manage trust and interaction trust together.

Two related storage bugs are fixed in the same pass:

  • Neighbor trust entries were written into the Accessors list, which quietly promoted neighbors to access trust the next time the claim loaded. Neighbor trust has its own list and is no longer written to a bucket that does not belong to it.
  • The shared claim codec used by the Fabric platform stripped interaction trust from anyone listed under Managers, mirroring the Bukkit bug.

Existing claims are not migrated

If a player lost trust after upgrading to v18.3.0 or v18.3.1, the data on disk already lost it — the old code overwrote the value before it was ever saved. This release stops the overwrite but does not grant anything back. Claim owners should re-run /trust, /containertrust, or /accesstrust once for anyone who is missing access. It will stick this time, in any command order.

Permission-node trust is its own command

/permissiontrust no longer aliases /managetrust. It now grants a permission node trust in a claim:

/permissiontrust <permission> <access|container|build|manage>
/aclaim trust permission <permission> <type>

Both the bare dotted form and the Bukkit bracketed form are accepted, and the bracketed form is what gets stored:

/permissiontrust myserver.vip container
/permissiontrust [myserver.vip] container

A target without a dot and without brackets is rejected, so a mistyped player name cannot silently become a permission node.

inventory is accepted as a synonym for container, and manager for manage.

Command and permission changes

BeforeNow
/permissiontrust <player> (alias /pt)/managetrust <player> (alias /mt)
/claim trust <player> permission/claim trust <player> manage (also manager)
/permissiontrust <permission> <type> (new, alias /pt)
/aclaim trust permission <permission> <type> (new)
PermissionDefaultPurpose
griefprevention.managetrusteveryoneUse /managetrust. Child of griefprevention.claims.
griefprevention.permissiontrustoperatorsGrant trust to a permission node. Child of griefprevention.adminclaims.

Read this before upgrading if you manage permissions explicitly. griefprevention.permissiontrust previously granted /managetrust and defaulted to true. It now means something different and defaults to false. Manage trust moved to the new griefprevention.managetrust node, which defaults to true and is inherited from griefprevention.claims, so ordinary players keep /managetrust with no configuration change.

If your permission plugin grants griefprevention.permissiontrust to a non-staff group, revoke it or those players will be able to hand out trust to arbitrary permission nodes. If you explicitly denied griefprevention.permissiontrust to stop players using the old /permissiontrust, that denial no longer affects /managetrust; deny griefprevention.managetrust instead.

/managetrust keeps /mt but no longer answers to /pt or /permissiontrust. Both of those names now belong to the new permission-node command, so a player who typed /pt <player> out of habit will get a permission error instead of granting manage trust.

alias.yml upgrades no longer drop sibling entries

Merging a server's existing alias.yml against the shipped defaults recreated user-owned parent sections, which erased default entries added by an upgrade. Adding aclaim.trust beside an existing aclaim.restore would have removed one of them.

The merge is now leaf-level: every default value is written first, then every user value is overlaid on top. Customizations still win, and new shipped entries survive the upgrade. This is what allows the new /permissiontrust and /aclaim trust permission entries to appear in an alias.yml that already exists.

Upgrade notes

  • No claim-data migration is required and no claim files are rewritten on upgrade.
  • No message keys were added. The existing InvalidPermissionID and CantGrantThatPermission messages cover the new command's failures.
  • griefprevention.permissiontrust changed meaning and default — see the table above.
  • A player may now appear in more than one section of /trustlist; a manager who also has build trust is listed in both. That is the intended display.
  • Trust granted to a permission node still requires the target player to actually hold that node at the time of the check, exactly as before.

Verification

The full ./gradlew check pipeline passes: 434 tests, 0 failures, 0 errors — 245 in the Bukkit plugin, 136 in the shared core, 51 on the Fabric platform, and 2 in the Fabric bootstrap. This includes the universal JAR audit, legacy class loading, shaded-core isolation, and the Fabric boot smoke test.

New regression coverage asserts that manage trust and interaction trust survive each other through loading, both grant orders, both drop paths, and a save round trip; that neighbor trust is never written as access trust; that the permission-node identifier rules reject bare player names; that /permissiontrust and /managetrust require their own permission nodes; that the shipped permission layout keeps them separate; and that an alias.yml merge preserves both user entries and newly shipped siblings.

Files Changed

 M gp3d-core/src/main/java/com/griefprevention/claims/ClaimTrustLevel.java
 M gp3d-core/src/main/java/com/griefprevention/claims/ClaimTrustSnapshot.java
 M gp3d-core/src/main/java/com/griefprevention/persistence/ClaimDocumentCodec.java
 M src/main/java/com/griefprevention/commands/CommandAliasConfiguration.java
 M src/main/java/com/griefprevention/commands/UnifiedAdminClaimCommand.java
 M src/main/java/com/griefprevention/commands/UnifiedClaimCommand.java
 M src/main/java/me/ryanhamshire/GriefPrevention/Alias.java
 M src/main/java/me/ryanhamshire/GriefPrevention/Claim.java
 M src/main/java/me/ryanhamshire/GriefPrevention/ClaimPermission.java
 M src/main/java/me/ryanhamshire/GriefPrevention/DataStore.java
 M src/main/java/me/ryanhamshire/GriefPrevention/FlatFileDataStore.java
 M src/main/java/me/ryanhamshire/GriefPrevention/GriefPrevention.java
 M src/main/resources/alias.yml
 M src/main/resources/plugin.yml
 M src/test/java/com/griefprevention/commands/UnifiedCommandAliasBehaviorTest.java
 M src/test/java/me/ryanhamshire/GriefPrevention/ClaimPermissionTest.java
 M src/test/java/me/ryanhamshire/GriefPrevention/FlatFileClaimMigrationParityTest.java
 M gp3d-core/src/test/java/com/griefprevention/claims/ClaimTrustLevelTest.java
 M gp3d-core/src/test/java/com/griefprevention/claims/ClaimTrustSnapshotTest.java
 M gp3d-core/src/test/java/com/griefprevention/persistence/ClaimDocumentCodecTest.java
 A gp3d-core/src/main/java/com/griefprevention/claims/ClaimTrustCommandPermissions.java
 A gp3d-core/src/main/java/com/griefprevention/claims/ClaimTrustIdentifier.java
 A gp3d-core/src/test/java/com/griefprevention/claims/ClaimTrustIdentifierTest.java
 A src/test/java/com/griefprevention/commands/UnifiedAdminClaimPermissionTrustTest.java
 A src/test/java/me/ryanhamshire/GriefPrevention/TrustCommandPermissionTest.java
 A src/test/java/me/ryanhamshire/GriefPrevention/TrustPermissionLayoutTest.java

Файлы

GriefPrevention3D.jar(1.51 MiB)
Основной
Скачать

Метаданные

Канал релиза

Release

Номер версии

18.3.2

Загрузчики

Bukkit
Folia
Paper
Purpur
Spigot

Версии игры

1.8.8–26.2

Загрузок

20

Дата публикации

12.08.2026

Загрузил

ID версии

Главная