c9c86e8c5f
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.
34 lines
1022 B
JavaScript
34 lines
1022 B
JavaScript
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
|
|
const rollHTML = await this._renderRollHTML(isPrivate)
|
|
if (isPrivate) {
|
|
data.flavor = game.i18n.format("CHAT.PrivateRollContent", { user: this.user.name })
|
|
messageData.isWhisper = false
|
|
messageData.alias = this.user.name
|
|
}
|
|
data.content = `<section class="dice-rolls">${rollHTML}</section>`
|
|
return
|
|
}
|
|
|
|
return super._renderRollContent(messageData)
|
|
}
|
|
}
|