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 ;
## 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
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 main2026-09-09 13:25:24 +00:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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 refreshrejouait aussi le seed du jour UTC, donc le contrat ne changeait pas. Un refresh operateur fait desormais un vrai reroll.Perimetre
sanctuaryCompatibilite inter-mods
Version et validation
pack_version,CHANGELOG.mdet la migration sont synchronises si c'est une release ;./gradlew checkreussit (./gradlew :sanctuary:checkOK) ;Test manuel
/blackmarket quest refresh <id court>change bien l'objectif affiche ;Fixes #167