© 2026 Hedgehog Software, LLC
import { Events, Listener } from "@sapphire/framework"; import { Message, MessageFlags } from "discord.js"; import { lexer } from "marked"; import { discordImageToGuilded, convertToGuilded, announceToGuilded, } from "../resources/modules/convertToGuilded"; export class CrosspostedListener extends Listener { public constructor(context: Listener.LoaderContext, options: Listener.Options) { super(context, { ...options, event: Events.MessageUpdate, }); } public async run(message: Message) { if (!message.flags.has(MessageFlags.Crossposted)) return; console.log(message); const messageContent = message.content; const regex = /<:[a-zA-Z0-9]+:\d+>/g; const messageContentWithoutCustomEmojis = messageContent.replace(regex, ""); const parsed = lexer(messageContentWithoutCustomEmojis); const image = await discordImageToGuilded(message.attachments.first()); const convertedToGuilded = convertToGuilded(parsed, image); await announceToGuilded(convertedToGuilded); } }
Join the Discord to ask follow-up questions and connect with the community
Sapphire is a next-gen object-oriented Discord.js bot framework.
2,286 Members