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:
@@ -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 })
|
||||
|
||||
Reference in New Issue
Block a user