/** * Chroniques de l'Étrange — Système FoundryVTT * * Chroniques de l'Étrange est un jeu de rôle édité par Antre-Monde Éditions. * Ce système FoundryVTT est une implémentation indépendante et n'est pas * affilié à Antre-Monde Éditions, * mais a été réalisé avec l'autorisation d'Antre-Monde Éditions. * * @author LeRatierBretonnien * @copyright 2024–2026 LeRatierBretonnien * @license CC BY-NC-SA 4.0 – https://creativecommons.org/licenses/by-nc-sa/4.0/ */ export class CDEMessage extends ChatMessage { async renderHTML({ canDelete, canClose = false, ...rest } = {}) { const html = await super.renderHTML({ canDelete, canClose, ...rest }) this.#enrichChatCard(html) return html } #enrichChatCard(html) { const tokenDoc = (this.speaker.scene && this.speaker.token) ? game.scenes.get(this.speaker.scene)?.tokens.get(this.speaker.token) : null const actor = tokenDoc?.actor ?? game.actors.get(this.speaker.actor) ?? null const [img, nameText] = this.isContentVisible ? [actor?.img ?? this.author.avatar, this.alias] : [this.author.avatar, this.author.name] const avatarImg = Object.assign(document.createElement("img"), { src: img, alt: nameText }) const avatar = Object.assign(document.createElement("a"), { className: "avatar" }) if (actor) avatar.dataset.uuid = actor.uuid avatar.append(avatarImg) const title = Object.assign(document.createElement("span"), { className: "title", textContent: nameText }) const name = Object.assign(document.createElement("span"), { className: "name-stacked" }) name.append(title) html.querySelector(".message-sender")?.replaceChildren(avatar, name) } }