From 74b41bb77033248104f7e02c14b84d71713ad168 Mon Sep 17 00:00:00 2001 From: Woomy Date: Thu, 2 Feb 2023 11:48:20 +0100 Subject: [PATCH] replies: Change reply embed format Add reference author to "author#iconURL" and move username to "author#name" Signed-off-by: Woomymy --- src/events/messageCreate.ts | 9 +++------ src/events/messageUpdate.ts | 14 ++++++++------ src/utils/embeds.ts | 16 ++++++++++++++++ 3 files changed, 27 insertions(+), 12 deletions(-) create mode 100644 src/utils/embeds.ts diff --git a/src/events/messageCreate.ts b/src/events/messageCreate.ts index 301327e..215bf03 100644 --- a/src/events/messageCreate.ts +++ b/src/events/messageCreate.ts @@ -1,12 +1,13 @@ import { clientEvent } from "@federation-interservices-d-informatique/fiibot-common"; import { Prisma } from "@prisma/client"; -import { Colors, Embed, Message, MessageType, TextChannel } from "discord.js"; +import { Message, MessageType, TextChannel } from "discord.js"; import { InterServerClient } from "../classes/InterServerClient"; import { INTERSERVER_WH_NAME, SERVERS_HEADERS, ServersHeadersKey } from "../utils/constants.js"; +import { makeReplyEmbed } from "../utils/embeds.js"; export default clientEvent({ name: "messageCreate", @@ -51,11 +52,7 @@ export default clientEvent({ const reference = await msg.fetchReference(); if (!reference) return; - msg.embeds.push({ - title: `En réponse à ${reference.author.username}`, - description: `>>> ${reference.cleanContent}`, - color: Colors.Blue - } as Embed); + msg.embeds.push(makeReplyEmbed(reference)); } const whMessage = await webhook.send({ diff --git a/src/events/messageUpdate.ts b/src/events/messageUpdate.ts index 935eae1..6f62071 100644 --- a/src/events/messageUpdate.ts +++ b/src/events/messageUpdate.ts @@ -1,5 +1,5 @@ import { clientEvent } from "@federation-interservices-d-informatique/fiibot-common"; -import { Message, PartialMessage, TextChannel } from "discord.js"; +import { Message, MessageType, PartialMessage, TextChannel } from "discord.js"; import { InterServerClient } from "../classes/InterServerClient"; import { MessageCloneData } from "../typings"; import { @@ -7,6 +7,7 @@ import { ServersHeadersKey, SERVERS_HEADERS } from "../utils/constants.js"; +import { makeReplyEmbed } from "../utils/embeds.js"; export default clientEvent({ name: "messageUpdate", @@ -34,11 +35,12 @@ export default clientEvent({ (hook) => hook.name === INTERSERVER_WH_NAME ); if (webHook) { - const replyEmbed = oldmessage.embeds.find((e) => - e.title?.startsWith("En réponse à") - ); - if (replyEmbed) { - newmessage.embeds.push(replyEmbed); + // Handle message replies + if (newmessage.type === MessageType.Reply) { + const reference = await newmessage.fetchReference(); + if (!reference) return; + + newmessage.embeds.push(makeReplyEmbed(reference)); } try { const hookMessage = await webHook.fetchMessage(clone.id); diff --git a/src/utils/embeds.ts b/src/utils/embeds.ts new file mode 100644 index 0000000..5885703 --- /dev/null +++ b/src/utils/embeds.ts @@ -0,0 +1,16 @@ +import { Colors, Embed, Message } from "discord.js"; + +/** + * Creates a "reply" embed + * @param {Message} [reference] The referenced message + */ +export function makeReplyEmbed(reference: Message): Embed { + return { + author: { + iconURL: reference.author.displayAvatarURL(), + name: `En réponse à ${reference.author.username}` + }, + description: `>>> ${reference.cleanContent}`, + color: Colors.Blue + } as Embed; +}