Add production-ready Graveyard death recovery - #89
Merged
Conversation
remdui
marked this pull request as ready for review
August 3, 2026 23:17
remdui
marked this pull request as draft
August 4, 2026 06:06
remdui
marked this pull request as ready for review
August 4, 2026 06:29
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds Graveyard, a durable packet-only death recovery feature that replaces physical death-chest plugins without placing blocks or Bukkit entities in the world.
Packet-only rendering and interaction
PacketWrapper<?>instances, preventing the rawByteBufoverload/cast failure;INTERACTIONmetadata from unspawned Paper entity templates so metadata indexes match the running protocol;INTERACT_ENTITYbefore vanilla attempts to resolve the packet-only entity;INTERACT, right-click-at-positionINTERACT_AT, and left-clickATTACKactions;Player-facing grave names
Graves use a stable command identifier:
The identifier is lower-case, command-safe, bounded in length, and stable after relocation. The internal UUID remains the durable database and recovery identity.
Commands and lifecycle visibility
Persistence
All tables use the PlayerData namespace:
player_graveyard_gravesplayer_graveyard_payloadsplayer_graveyard_auditplayer_graveyard_leasesNo compatibility or automatic migration path exists for the earlier unreleased unprefixed development tables.
Reliability and safety
Startup log clarification
Hibernate database-information output and
HHH000489: No JTA platform availableare normal INFO-level diagnostics for the configured local JDBC transaction model. The ORM initialization, command registration, feature load, and lease-acquisition messages indicate successful initialization.Validation
Final head
80b951365636dade6e2a0dfa37b143319fc20261:main(behind_by: 0);INTERACT,INTERACT_AT, andATTACK;.agentfiles;