From aef84ffdd155785093742e871d7045f02697f751 Mon Sep 17 00:00:00 2001 From: LeRatierBretonnier Date: Fri, 10 Jul 2026 23:17:21 +0200 Subject: [PATCH] fix: sanitisation robuste des formules de roll au chargement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- module/documents/chat-message.mjs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/module/documents/chat-message.mjs b/module/documents/chat-message.mjs index 43a6a38..2de6c09 100644 --- a/module/documents/chat-message.mjs +++ b/module/documents/chat-message.mjs @@ -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) {