From 26e805cf46fd37eefeed84385fd32f7c125d5726 Mon Sep 17 00:00:00 2001 From: Vincent Vandemeulebrouck Date: Mon, 27 May 2024 00:37:19 +0200 Subject: [PATCH] Ajout de la date/heure aux messages --- changelog.md | 1 + module/chat-utility.js | 14 ++++++++++++++ module/rdd-utility.js | 12 ++++-------- module/time/rdd-timestamp.js | 1 + styles/simple.css | 5 +++++ templates/common/date-heure.hbs | 3 +++ 6 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 templates/common/date-heure.hbs diff --git a/changelog.md b/changelog.md index 499ee903..04facd2a 100644 --- a/changelog.md +++ b/changelog.md @@ -3,6 +3,7 @@ - Une confirmation spécifique est demandée pour monter dans les terres médianes en cas de rencontre en attente - L'expérience en caractéristique sur les jets de chance et rêve actuels est mise dans la caractéristique correspondante - Les effets s'appliquent correctement sur les créatures +- La date et l'heure (draconiques) sont affichées dans les messages du tchat ## 11.2.20 - Le soulagement d'Akarlikarlikar - L'option "ajout de la difficulté d'attaque à l'encaissement" est affichée comme un modificateur d'encaissement diff --git a/module/chat-utility.js b/module/chat-utility.js index 24ff43da..a4f1f96d 100644 --- a/module/chat-utility.js +++ b/module/chat-utility.js @@ -1,5 +1,6 @@ import { Misc } from "./misc.js"; import { SYSTEM_RDD, SYSTEM_SOCKET_ID } from "./constants.js"; +import { RdDTimestamp } from "./time/rdd-timestamp.js"; /** @@ -163,4 +164,17 @@ export class ChatUtility { return game.messages.get(chatMessageId); } + static async onRenderChatMessage(chatMessage, html, data) { + const rddTimestamp = chatMessage.getFlag(SYSTEM_RDD, 'rdd-timestamp') + if (rddTimestamp) { + const timestamp = new RdDTimestamp(rddTimestamp); + const timestampData = timestamp.toCalendrier(); + const dateHeure = await renderTemplate('systems/foundryvtt-reve-de-dragon/templates/common/date-heure.hbs', timestampData); + html.find('header.message-header .message-sender').after(dateHeure) + } + } + + static async onCreateChatMessage(chatMessage, options, id) { + await chatMessage.setFlag(SYSTEM_RDD, 'rdd-timestamp', game.system.rdd.calendrier.getTimestamp()); + } } diff --git a/module/rdd-utility.js b/module/rdd-utility.js index 884be00c..35e50a5d 100644 --- a/module/rdd-utility.js +++ b/module/rdd-utility.js @@ -99,8 +99,9 @@ export class RdDUtility { static afficheContenu = {} /* -------------------------------------------- */ static async init() { - Hooks.on("renderChatMessage", async (app, html, msg) => RdDUtility.onRenderChatMessage(app, html, msg)); - Hooks.on('renderChatLog', (log, html, chatLog) => RdDUtility.chatListeners(html)); + Hooks.on("renderChatMessage", async (app, html, msg) => await ChatUtility.onRenderChatMessage(app, html, msg)) + Hooks.on("createChatMessage", async (chatMessage, options, id) => await ChatUtility.onCreateChatMessage(chatMessage, options, id)) + Hooks.on('renderChatLog', (log, html, chatLog) => RdDUtility.chatListeners(html)) } /* -------------------------------------------- */ @@ -206,6 +207,7 @@ export class RdDUtility { 'systems/foundryvtt-reve-de-dragon/templates/voyage/fatigue-actor.hbs', 'systems/foundryvtt-reve-de-dragon/templates/voyage/option-vitesse-fatigue.hbs', 'systems/foundryvtt-reve-de-dragon/templates/common/timestamp.hbs', + 'systems/foundryvtt-reve-de-dragon/templates/common/date-heure.hbs', 'systems/foundryvtt-reve-de-dragon/templates/common/periodicite.hbs', 'systems/foundryvtt-reve-de-dragon/templates/common/enum-duree.hbs', 'systems/foundryvtt-reve-de-dragon/templates/common/compendium-link.hbs', @@ -890,10 +892,4 @@ export class RdDUtility { } } - /*-------------------------------------------- */ - static async onRenderChatMessage(app, html, msg) { - // TODO - //console.log(app, html, msg); - } - } diff --git a/module/time/rdd-timestamp.js b/module/time/rdd-timestamp.js index c7a9b602..2f12d5c3 100644 --- a/module/time/rdd-timestamp.js +++ b/module/time/rdd-timestamp.js @@ -231,6 +231,7 @@ export class RdDTimestamp { get annee() { return Math.floor(this.indexDate / RDD_JOURS_PAR_AN) } get mois() { return Math.floor(Misc.modulo(this.indexDate, RDD_JOURS_PAR_AN) / RDD_JOURS_PAR_MOIS) } + get nomMois() { return Math.floor(Misc.modulo(this.indexDate, RDD_JOURS_PAR_AN) / RDD_JOURS_PAR_MOIS) } get jour() { return Misc.modulo(Misc.modulo(this.indexDate, RDD_JOURS_PAR_AN), RDD_JOURS_PAR_MOIS) } get heure() { return Math.floor(this.indexMinute / RDD_MINUTES_PAR_HEURES) } get minute() { return Misc.modulo(this.indexMinute, RDD_MINUTES_PAR_HEURES) } diff --git a/styles/simple.css b/styles/simple.css index 931fb9de..0a14100c 100644 --- a/styles/simple.css +++ b/styles/simple.css @@ -1527,6 +1527,11 @@ div.control-icon.token-hud-icon { font-size: 1rem; } +.chat-message header.message-header .heure-rdd { + font-size: 0.7rem; + flex-grow: 3; +} + .chat-message.whisper { background: rgba(220,220,210,0.75); border: 2px solid #545469; diff --git a/templates/common/date-heure.hbs b/templates/common/date-heure.hbs new file mode 100644 index 00000000..a0f209fa --- /dev/null +++ b/templates/common/date-heure.hbs @@ -0,0 +1,3 @@ + + {{this.jourDuMois}} {{this.mois.label}} - {{timestamp-imgSigne this.heure}} + \ No newline at end of file