fix: sanitisation des formules de roll invalides au chargement

Les anciens messages d'initiative stockaient des formules comme
'3 de Bâton (3)' qui cassent Roll.parse(). Le override de
prepareDerivedData dans HamalronChatMessage valide chaque formule
via Roll.parse() et remplace par '1d6' si invalide.
This commit is contained in:
2026-07-10 23:14:14 +02:00
parent 6943a1f429
commit c9c86e8c5f
+14 -1
View File
@@ -1,10 +1,23 @@
export default class HamalronChatMessage extends ChatMessage {
/** @override */
prepareDerivedData() {
if (this._source?.rolls) {
for (const r of this._source.rolls) {
try {
Roll.parse(r.formula || "1d6")
} catch (e) {
r.formula = "1d6"
}
}
}
super.prepareDerivedData()
}
async _renderRollContent(messageData) {
const data = messageData.message
const { default: HamalronTirageTarot } = await import("./tirage-tarot.mjs")
if (this.rolls[0] instanceof HamalronTirageTarot) {
const isPrivate = !this.isContentVisible
// _renderRollHTML va appeler render sur tous les rolls
const rollHTML = await this._renderRollHTML(isPrivate)
if (isPrivate) {
data.flavor = game.i18n.format("CHAT.PrivateRollContent", { user: this.user.name })