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