Skip to content

Correctif des lettres qui n'étaient pas récupérable à certains moments#1218

Open
gtolontop wants to merge 2 commits intoServerOpenMC:masterfrom
gtolontop:fix/letter-items-lost
Open

Correctif des lettres qui n'étaient pas récupérable à certains moments#1218
gtolontop wants to merge 2 commits intoServerOpenMC:masterfrom
gtolontop:fix/letter-items-lost

Conversation

@gtolontop
Copy link
Contributor

Corrige le bug où les items de la mailbox disparaissaient lors de l'acceptation d'une lettre.

Problème

Dans LetterMenu.accept(), les items étaient récupérés après deleteLetter(), qui supprime la lettre du cache en mémoire. MailboxManager.getById() retournait alors null dans le ClaimLetterEvent, et letter.getCachedItems() pouvait échouer silencieusement — les items étaient perdus sans message d'erreur.

Le problème se manifestait principalement quand l'expéditeur était déconnecté et que la lettre avait été envoyée avant un redémarrage serveur.

Correction

  • Extraction d'une méthode resolveItems() qui cache les items désérialisés dans un champ resolvedItems, évitant la double désérialisation entre getContent() et accept()
  • Appel de resolveItems() avant deleteLetter() pour garantir que les items sont disponibles
  • Les items sont donnés au joueur avant le fire du ClaimLetterEvent
  • ClaimLetterEvent reçoit directement l'objet letter au lieu de getById() post-suppression

Fixes #1167, fixes #1084

@gtolontop gtolontop force-pushed the fix/letter-items-lost branch from 2916e5e to c741b88 Compare March 22, 2026 12:39
@iambibi iambibi changed the title fix: résoudre les items avant deleteLetter() dans LetterMenu Correctif des lettres qui n'étaient pas récupérable à certains moments Mar 23, 2026
@iambibi iambibi added the ✨ Fixes Quelque chose a été patch label Mar 23, 2026
@iambibi iambibi added this to the 2.2.9 milestone Mar 23, 2026
@AxenoDev
Copy link
Member

Pourquoi tu modifie la class OMCPlugin.java ?

@gtolontop
Copy link
Contributor Author

Il manque des accolade c'est écrit :)

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

Labels

✨ Fixes Quelque chose a été patch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] Erreur lors de la récupération de lettre dans le /mailbox [BUG] Mailbox items non recus

3 participants