diff --git a/src/structures/Sticker.ts b/src/structures/Sticker.ts index a7e998d..e1bb43b 100644 --- a/src/structures/Sticker.ts +++ b/src/structures/Sticker.ts @@ -1,58 +1,58 @@ -import type { - APISticker, - RESTPatchAPIGuildStickerJSONBody, - RESTPostAPIGuildStickerFormDataBody, -} from 'discord-api-types/v10'; -import type { UsingClient } from '..'; -import type { Attachment } from '../builders'; -import type { MethodContext, ObjectToLower } from '../common'; -import { User } from './User'; -import { DiscordBase } from './extra/DiscordBase'; - -export interface Sticker extends DiscordBase, ObjectToLower> {} - -export class Sticker extends DiscordBase { - user?: User; - constructor(client: UsingClient, data: APISticker) { - super(client, data); - if (data.user) { - this.user = new User(this.client, data.user); - } - } - - guild(force = false) { - if (!this.guildId) return; - return this.client.guilds.fetch(this.id, force); - } - - edit(body: RESTPatchAPIGuildStickerJSONBody, reason?: string) { - if (!this.guildId) return; - return this.client.guilds.stickers.edit(this.guildId, this.id, body, reason); - } - - fetch(force = false) { - if (!this.guildId) return; - return this.client.guilds.stickers.fetch(this.guildId, this.id, force); - } - - delete(reason?: string) { - if (!this.guildId) return; - return this.client.guilds.stickers.delete(this.guildId, this.id, reason); - } - - static methods({ client, guildId }: MethodContext<{ guildId: string }>) { - return { - list: () => client.guilds.stickers.list(guildId), - create: (payload: CreateStickerBodyRequest, reason?: string) => - client.guilds.stickers.create(guildId, payload, reason), - edit: (stickerId: string, body: RESTPatchAPIGuildStickerJSONBody, reason?: string) => - client.guilds.stickers.edit(guildId, stickerId, body, reason), - fetch: (stickerId: string, force = false) => client.guilds.stickers.fetch(guildId, stickerId, force), - delete: (stickerId: string, reason?: string) => client.guilds.stickers.delete(guildId, stickerId, reason), - }; - } -} - -export interface CreateStickerBodyRequest extends Omit { - file: Attachment; -} +import type { + APISticker, + RESTPatchAPIGuildStickerJSONBody, + RESTPostAPIGuildStickerFormDataBody, +} from 'discord-api-types/v10'; +import type { RawFile, UsingClient } from '..'; +import type { Attachment, AttachmentBuilder } from '../builders'; +import type { MethodContext, ObjectToLower } from '../common'; +import { User } from './User'; +import { DiscordBase } from './extra/DiscordBase'; + +export interface Sticker extends DiscordBase, ObjectToLower> {} + +export class Sticker extends DiscordBase { + user?: User; + constructor(client: UsingClient, data: APISticker) { + super(client, data); + if (data.user) { + this.user = new User(this.client, data.user); + } + } + + guild(force = false) { + if (!this.guildId) return; + return this.client.guilds.fetch(this.id, force); + } + + edit(body: RESTPatchAPIGuildStickerJSONBody, reason?: string) { + if (!this.guildId) return; + return this.client.guilds.stickers.edit(this.guildId, this.id, body, reason); + } + + fetch(force = false) { + if (!this.guildId) return; + return this.client.guilds.stickers.fetch(this.guildId, this.id, force); + } + + delete(reason?: string) { + if (!this.guildId) return; + return this.client.guilds.stickers.delete(this.guildId, this.id, reason); + } + + static methods({ client, guildId }: MethodContext<{ guildId: string }>) { + return { + list: () => client.guilds.stickers.list(guildId), + create: (payload: CreateStickerBodyRequest, reason?: string) => + client.guilds.stickers.create(guildId, payload, reason), + edit: (stickerId: string, body: RESTPatchAPIGuildStickerJSONBody, reason?: string) => + client.guilds.stickers.edit(guildId, stickerId, body, reason), + fetch: (stickerId: string, force = false) => client.guilds.stickers.fetch(guildId, stickerId, force), + delete: (stickerId: string, reason?: string) => client.guilds.stickers.delete(guildId, stickerId, reason), + }; + } +} + +export interface CreateStickerBodyRequest extends Omit { + file: Attachment | AttachmentBuilder | RawFile; +}