fix(sanctuary): resynchroniser le panneau de quete apres rotation hors chunk #172

Merged
koka merged 1 commits from fix/issue-167-quest-board-stale-sign into main 2026-09-09 13:25:24 +00:00
Collaborator

Objectif

Corriger #167 : le panneau de quete quotidien pouvait afficher un contrat perime. Un clic droit reservait alors une autre quete que celle lue (ex. ramener du fer -> tuer des zombies).

Le texte du panneau n'etait reecrit qu'une fois par session. Si la rotation quotidienne avait lieu hors chunk, la data changeait mais le panneau gardait l'ancien texte jusqu'a l'interaction.

/blackmarket quest refresh rejouait aussi le seed du jour UTC, donc le contrat ne changeait pas. Un refresh operateur fait desormais un vrai reroll.

Perimetre

  • Modules touches : sanctuary
  • APIs ou fichiers partages touches : aucun
  • Depend d'une autre branche/PR : non

Compatibilite inter-mods

  • chaque donnee/regle reste dans son module proprietaire ;
  • les appels inter-mods passent par une API publique et une dependance Gradle explicite ;
  • aucun cycle de dependances n'est ajoute ;
  • les IDs et namespaces restent stables ;
  • les sauvegardes et protocoles restent compatibles, ou une migration/version est fournie ;
  • le comportement client, serveur et multijoueur a ete considere.

Version et validation

  • les versions des modules modifies ont ete incrementees ;
  • pack_version, CHANGELOG.md et la migration sont synchronises si c'est une release ;
  • les traductions FR/EN/RU sont completes ;
  • les tests cibles reussissent ;
  • ./gradlew check reussit (./gradlew :sanctuary:check OK) ;
  • aucun build, log, backup, JAR genere, secret ou fichier personnel n'est commite.

Test manuel

  • poser un panneau emeraude/rubis/saphir, noter le contrat ;
  • /blackmarket quest refresh <id court> change bien l'objectif affiche ;
  • un clic droit reserve le contrat affiche, pas un autre ;
  • s'eloigner, attendre/forcer une rotation hors chunk, revenir : le panneau doit deja montrer le nouveau contrat avant le clic.

Fixes #167

## Objectif Corriger #167 : le panneau de quete quotidien pouvait afficher un contrat perime. Un clic droit reservait alors une autre quete que celle lue (ex. ramener du fer -> tuer des zombies). Le texte du panneau n'etait reecrit qu'une fois par session. Si la rotation quotidienne avait lieu hors chunk, la data changeait mais le panneau gardait l'ancien texte jusqu'a l'interaction. `/blackmarket quest refresh` rejouait aussi le seed du jour UTC, donc le contrat ne changeait pas. Un refresh operateur fait desormais un vrai reroll. ## Perimetre - Modules touches : `sanctuary` - APIs ou fichiers partages touches : aucun - Depend d'une autre branche/PR : non ## Compatibilite inter-mods - [x] chaque donnee/regle reste dans son module proprietaire ; - [x] les appels inter-mods passent par une API publique et une dependance Gradle explicite ; - [x] aucun cycle de dependances n'est ajoute ; - [x] les IDs et namespaces restent stables ; - [x] les sauvegardes et protocoles restent compatibles, ou une migration/version est fournie ; - [x] le comportement client, serveur et multijoueur a ete considere. ## Version et validation - [ ] les versions des modules modifies ont ete incrementees ; - [ ] `pack_version`, `CHANGELOG.md` et la migration sont synchronises si c'est une release ; - [x] les traductions FR/EN/RU sont completes ; - [x] les tests cibles reussissent ; - [ ] `./gradlew check` reussit (`./gradlew :sanctuary:check` OK) ; - [x] aucun build, log, backup, JAR genere, secret ou fichier personnel n'est commite. ## Test manuel - [x] poser un panneau emeraude/rubis/saphir, noter le contrat ; - [x] `/blackmarket quest refresh <id court>` change bien l'objectif affiche ; - [x] un clic droit reserve le contrat **affiche**, pas un autre ; - [ ] s'eloigner, attendre/forcer une rotation hors chunk, revenir : le panneau doit deja montrer le nouveau contrat avant le clic. Fixes #167
chris added 1 commit 2026-09-07 19:25:39 +00:00
fix(sanctuary): resynchroniser le panneau de quête après rotation hors chunk
Verification 26.2 / check (pull_request) Canceled after 0s
63938d708e
Le contrat quotidien était déjà régénéré en data pendant que le panneau gardait l'ancien texte. Un clic réservait donc une autre quête que celle affichée.

Co-authored-by: Cursor <cursoragent@cursor.com>
koka merged commit 8ab2fc727e into main 2026-09-09 13:25:24 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: koka/sanctuary#172