Skip to content

release: v3.1.1 - cross-server payment fix#172

Merged
ez-plugins merged 3 commits into
v3.xfrom
release/v3.1.1-final
May 28, 2026
Merged

release: v3.1.1 - cross-server payment fix#172
ez-plugins merged 3 commits into
v3.xfrom
release/v3.1.1-final

Conversation

@gitEpildev
Copy link
Copy Markdown
Collaborator

Summary

  • Fixes cross-server /pay failing silently when recipient has never joined the sender's server
  • PayCommand now checks MessagingService and StorageProvider.resolvePlayerByName() for cross-server player resolution
  • PaymentExecutor resolves the correct UUID from the shared database, with proper fallback to Bukkit's offline player when knownOffline is set
  • MySQLStorageProvider implements resolvePlayerByName() and persistPlayerInfo()
  • Bumps all module versions from 3.1.0 to 3.1.1
  • Updated CHANGELOG.md, cross-server docs, and storage-provider API docs
  • Fixes PayCommandOfflineSequentialFeatureTest regression

Test plan

  • /pay <player> works when recipient is on a different backend server
  • /pay <player> works for local online and offline players
  • PayCommandOfflineSequentialFeatureTest passes
  • All CI checks pass
  • Plugin reports version 3.1.1 on startup

- Bump all module versions from 3.1.0 to 3.1.1
- Add 3.1.1 changelog entry documenting cross-server payment fix
- Update cross-server and storage-provider docs to reflect the fix
PayCommand now checks MessagingService and storage.resolvePlayerByName()
when the recipient is not found locally, enabling payments to players on
other backend servers.

PaymentExecutor resolves the recipient UUID from the messaging service or
shared database instead of using Bukkit.getOfflinePlayer(name), which
generates an incorrect offline-mode UUID for players unknown to the local
server.

MySQLStorageProvider now implements resolvePlayerByName() by querying the
players table, and persistPlayerInfo() for explicit player data upserts.
When knownOffline is set but no UUID can be resolved from the messaging
service or storage, fall back to the Bukkit offline player instead of
returning player_not_found. Fixes PayCommandOfflineSequentialFeatureTest.
@ez-plugins ez-plugins merged commit bab2249 into v3.x May 28, 2026
16 checks passed
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.

2 participants