fix: sanitisation robuste des formules de roll au chargement

Utilise une regex pour détecter les formules invalides avant
d'appeler super.prepareDerivedData(). Fallback sur try-catch
qui vide les rolls en dernier recours.
This commit is contained in:
2026-07-10 23:17:21 +02:00
parent c9c86e8c5f
commit aef84ffdd1
+8 -4
View File
@@ -3,14 +3,18 @@ export default class HamalronChatMessage extends ChatMessage {
prepareDerivedData() {
if (this._source?.rolls) {
for (const r of this._source.rolls) {
try {
Roll.parse(r.formula || "1d6")
} catch (e) {
if (r.formula && !/^[\ddDfFkKlLhH+\-*\/()%\s]+$/.test(r.formula)) {
r.formula = "1d6"
}
}
}
super.prepareDerivedData()
try {
super.prepareDerivedData()
} catch (e) {
console.warn("Hamalron | Failed to parse roll, resetting rolls")
if (this._source) this._source.rolls = []
super.prepareDerivedData()
}
}
async _renderRollContent(messageData) {