Skip to content

Preserve vault owner notices without Essentials mail API - #8

Draft
ParadauxIO wants to merge 1 commit into
1.21.8from
essentials-notification-adapter
Draft

ParadauxIO wants to merge 1 commit into
1.21.8from
essentials-notification-adapter

Conversation

@ParadauxIO

Copy link
Copy Markdown

Why?

VaultStorage 1.2.0 resolves MailService during onEnable, so an Essentials build without its mail API prevents startup before the optional provider check. Vault creation also calls that removed API for owner notices. This narrowly addresses ADT-206.

How?

Use the existing PlayerNotifications mail inbox for owner notices, preserving the configured template, sender, recipient, text and formatting. Save each notice before delivery; retain it for retry after restart or once a minute if the optional API/service is unavailable or rejects delivery. Inbox entries do not expire or overwrite earlier notices. A queue write failure reports the unsaved notice without undoing the already-created vault. Existing mail is never read, converted or deleted.

The branch starts from matching 1.21.8; storage, capture, ownership, inventory and protection logic are retained. Java 25 is used for the PlayerNotifications API and CI.

Validation: checked-in Gradle wrapper clean build and six durable-queue tests pass. Isolated checks against the actual Paper 26.3 dependency classpath and the Essentials candidate exercise real onEnable, vault creation/ownership/inventory, unavailable notifications, and absent PlayerNotifications classes. The frozen original fails the missing-API control; all 166 other original VaultStorage classes remain byte-identical. No live runtime or data changes were performed. Draft only; dependent readiness and deployment remain separate.

Diagram

Diagram

The vault remains stored while its notice either reaches the inbox or stays queued for retry.

Vault owner notice delivery

Screenshots

Not applicable: this changes startup and offline notification delivery, with no visual interface change. Authenticated gameplay remains unverified.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant