diff --git a/src/structures/Message.js b/src/structures/Message.js index 642cefb60..22a0de773 100644 --- a/src/structures/Message.js +++ b/src/structures/Message.js @@ -448,6 +448,22 @@ class Message extends Base { }); } + /** + * Publishes a message in an announcement channel to all channels following it. + * @returns {Promise} + * @example + * // Crosspost a message + * if (message.channel.type === 'news') { + * message.crosspost() + * .then(() => console.log('Crossposted message')) + * .catch(console.error); + * } + */ + async crosspost() { + await this.client.api.channels(this.channel.id).messages(this.id).crosspost.post(); + return this; + } + /** * Pins this message to the channel's pinned messages. * @param {Object} [options] Options for pinning diff --git a/typings/index.d.ts b/typings/index.d.ts index 6e9514f50..c24023dfa 100644 --- a/typings/index.d.ts +++ b/typings/index.d.ts @@ -1023,6 +1023,7 @@ declare module 'discord.js' { public edit(content: StringResolvable, options: MessageEditOptions | MessageEmbed): Promise; public equals(message: Message, rawData: object): boolean; public fetchWebhook(): Promise; + public crosspost(): Promise; public fetch(force?: boolean): Promise; public pin(options?: { reason?: string }): Promise; public react(emoji: EmojiIdentifierResolvable): Promise;