From ab4b1f0d740aad66774bff979f411bfac50ae259 Mon Sep 17 00:00:00 2001 From: Yuzu Date: Sat, 20 Aug 2022 02:47:05 -0500 Subject: [PATCH] fix: restore backwards compatibility --- packages/core/src/structures/message.ts | 6 +-- .../builders/{ => embeds}/embed-builder.ts | 43 +++++++++---------- packages/helpers/src/index.ts | 2 +- 3 files changed, 24 insertions(+), 27 deletions(-) rename packages/helpers/src/builders/{ => embeds}/embed-builder.ts (68%) diff --git a/packages/core/src/structures/message.ts b/packages/core/src/structures/message.ts index 91ad867..65cc0b5 100644 --- a/packages/core/src/structures/message.ts +++ b/packages/core/src/structures/message.ts @@ -15,7 +15,7 @@ import type { Channel } from './channels'; import type { Component } from './components'; import type { MessageInteraction } from './interactions'; import type { StickerItem } from './sticker'; -import type { Embed } from './embed'; +import { Embed, NewEmbed } from './embed'; import { MessageFlags } from '../utils/util'; import { Snowflake } from '../snowflakes'; import { ChannelFactory, ThreadChannel } from './channels'; @@ -424,7 +424,7 @@ export class Message implements Model { replied_user: options.allowedMentions?.repliedUser, }, flags: options.flags, - embeds: options.embeds, + embeds: options.embeds?.map(NewEmbed), components: options.components, files: options.files, attachments: options.attachments @@ -479,7 +479,7 @@ export class Message implements Model { true, } : undefined, - embeds: options.embeds, + embeds: options.embeds?.map(NewEmbed), tts: options.tts, components: options.components, } diff --git a/packages/helpers/src/builders/embed-builder.ts b/packages/helpers/src/builders/embeds/embed-builder.ts similarity index 68% rename from packages/helpers/src/builders/embed-builder.ts rename to packages/helpers/src/builders/embeds/embed-builder.ts index f1b321d..e6acd33 100644 --- a/packages/helpers/src/builders/embed-builder.ts +++ b/packages/helpers/src/builders/embeds/embed-builder.ts @@ -1,4 +1,4 @@ -import { DiscordEmbed, DiscordEmbedField, DiscordEmbedProvider } from '@biscuitland/api-types'; +import type { Embed } from '@biscuitland/core'; export interface EmbedFooter { text: string; @@ -21,20 +21,26 @@ export interface EmbedVideo { width?: number; } +export interface EmbedField { + name: string; + value: string; + inline?: boolean; +} + +export interface EmbedProvider { + url?: string; + name?: string; +} + export class EmbedBuilder { - #data: DiscordEmbed; - constructor(data: DiscordEmbed = {}) { + #data: Embed; + constructor(data: Embed = {}) { this.#data = data; if (!this.#data.fields) this.#data.fields = []; } setAuthor(author: EmbedAuthor): EmbedBuilder { - this.#data.author = { - name: author.name, - icon_url: author.iconUrl, - proxy_icon_url: author.proxyIconUrl, - url: author.url, - }; + this.#data.author = author; return this; } @@ -48,17 +54,13 @@ export class EmbedBuilder { return this; } - addField(field: DiscordEmbedField): EmbedBuilder { + addField(field: EmbedField): EmbedBuilder { this.#data.fields!.push(field); return this; } setFooter(footer: EmbedFooter): EmbedBuilder { - this.#data.footer = { - text: footer.text, - icon_url: footer.iconUrl, - proxy_icon_url: footer.proxyIconUrl, - }; + this.#data.footer = footer; return this; } @@ -67,7 +69,7 @@ export class EmbedBuilder { return this; } - setProvider(provider: DiscordEmbedProvider): EmbedBuilder { + setProvider(provider: EmbedProvider): EmbedBuilder { this.#data.provider = provider; return this; } @@ -94,16 +96,11 @@ export class EmbedBuilder { } setVideo(video: EmbedVideo): EmbedBuilder { - this.#data.video = { - height: video.height, - proxy_url: video.proxyUrl, - url: video.url, - width: video.width, - }; + this.#data.video = video; return this; } - toJSON(): DiscordEmbed { + toJSON(): Embed { return this.#data; } } diff --git a/packages/helpers/src/index.ts b/packages/helpers/src/index.ts index d093f0c..692a0b0 100644 --- a/packages/helpers/src/index.ts +++ b/packages/helpers/src/index.ts @@ -13,4 +13,4 @@ export * from './builders/slash/ApplicationCommand'; export * from './builders/slash/ApplicationCommandOption'; // Embed -export * from './builders/embed-builder'; \ No newline at end of file +export * from './builders/embeds/embed-builder';