mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-02 08:50:07 +00:00
fix: add nitroStickerPacks helper. Closes #2095
This commit is contained in:
7
bot.ts
7
bot.ts
@@ -59,9 +59,9 @@ import { transformWelcomeScreen } from "./transformers/welcomeScreen.ts";
|
||||
import { transformVoiceRegion } from "./transformers/voiceRegion.ts";
|
||||
import { transformWidget } from "./transformers/widget.ts";
|
||||
import { transformStageInstance } from "./transformers/stageInstance.ts";
|
||||
import { transformSticker } from "./transformers/sticker.ts";
|
||||
import { StickerPack, transformSticker, transformStickerPack } from "./transformers/sticker.ts";
|
||||
import { GetGatewayBot, transformGatewayBot } from "./transformers/gatewayBot.ts";
|
||||
import { DiscordEmoji, DiscordGatewayPayload, DiscordReady } from "./types/discord.ts";
|
||||
import { DiscordEmoji, DiscordGatewayPayload, DiscordReady, DiscordStickerPack } from "./types/discord.ts";
|
||||
import { Errors, GatewayDispatchEventNames, GatewayIntents } from "./types/shared.ts";
|
||||
|
||||
import {
|
||||
@@ -343,6 +343,7 @@ export function createHelpers(
|
||||
...createBaseHelpers(customHelpers || {}),
|
||||
})
|
||||
) {
|
||||
// @ts-ignore - TODO: make the types better
|
||||
converted[name as keyof FinalHelpers] = (
|
||||
// @ts-ignore - TODO: make the types better
|
||||
...args: RemoveFirstFromTuple<Parameters<typeof fun>>
|
||||
@@ -397,6 +398,7 @@ export interface Transformers {
|
||||
widget: (bot: Bot, payload: DiscordGuildWidget) => GuildWidget;
|
||||
stageInstance: (bot: Bot, payload: DiscordStageInstance) => StageInstance;
|
||||
sticker: (bot: Bot, payload: DiscordSticker) => Sticker;
|
||||
stickerPack: (bot: Bot, payload: DiscordStickerPack) => StickerPack;
|
||||
}
|
||||
|
||||
export function createTransformers(options: Partial<Transformers>) {
|
||||
@@ -435,6 +437,7 @@ export function createTransformers(options: Partial<Transformers>) {
|
||||
widget: options.widget || transformWidget,
|
||||
stageInstance: options.stageInstance || transformStageInstance,
|
||||
sticker: options.sticker || transformSticker,
|
||||
stickerPack: options.stickerPack || transformStickerPack,
|
||||
gatewayBot: options.gatewayBot || transformGatewayBot,
|
||||
};
|
||||
}
|
||||
|
||||
13
helpers/misc/nitroStickerPacks.ts
Normal file
13
helpers/misc/nitroStickerPacks.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import { Bot } from "../../bot.ts";
|
||||
import { DiscordStickerPack } from "../../types/discord.ts";
|
||||
|
||||
/** Returns the list of sticker packs available to Nitro subscribers. */
|
||||
export async function nitroStickerPacks(bot: Bot) {
|
||||
const packs = await bot.rest.runMethod<DiscordStickerPack[]>(
|
||||
bot.rest,
|
||||
"get",
|
||||
bot.constants.endpoints.NITRO_STICKER_PACKS,
|
||||
);
|
||||
|
||||
return packs.map((pack) => bot.transformers.stickerPack(bot, pack));
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
import { Bot } from "../bot.ts";
|
||||
import { DiscordSticker } from "../types/discord.ts";
|
||||
import { DiscordSticker, DiscordStickerPack } from "../types/discord.ts";
|
||||
import { Optionalize } from "../types/shared.ts";
|
||||
|
||||
export function transformSticker(bot: Bot, payload: DiscordSticker) {
|
||||
@@ -20,4 +20,19 @@ export function transformSticker(bot: Bot, payload: DiscordSticker) {
|
||||
return sticker as Optionalize<typeof sticker>;
|
||||
}
|
||||
|
||||
export function transformStickerPack(bot: Bot, payload: DiscordStickerPack) {
|
||||
const pack = {
|
||||
id: bot.transformers.snowflake(payload.id),
|
||||
stickers: payload.stickers.map((sticker) => bot.transformers.sticker(bot, sticker)),
|
||||
name: payload.name,
|
||||
skuId: bot.transformers.snowflake(payload.sku_id),
|
||||
coverStickerId: payload.cover_sticker_id ? bot.transformers.snowflake(payload.cover_sticker_id) : undefined,
|
||||
description: payload.description,
|
||||
bannerAssetId: payload.banner_asset_id ? bot.transformers.snowflake(payload.banner_asset_id) : undefined,
|
||||
};
|
||||
|
||||
return pack as Optionalize<typeof pack>;
|
||||
}
|
||||
|
||||
export interface Sticker extends ReturnType<typeof transformSticker> {}
|
||||
export interface StickerPack extends ReturnType<typeof transformStickerPack> {}
|
||||
|
||||
@@ -169,6 +169,9 @@ export const endpoints = {
|
||||
// Stage instances
|
||||
STAGE_INSTANCES: `${baseEndpoints.BASE_URL}/stage-instances`,
|
||||
STAGE_INSTANCE: (channelId: bigint) => `${baseEndpoints.BASE_URL}/stage-instances/${channelId}`,
|
||||
|
||||
// Misc Endpoints
|
||||
NITRO_STICKER_PACKS: `${baseEndpoints.BASE_URL}/sticker-packs`,
|
||||
};
|
||||
|
||||
export const SLASH_COMMANDS_NAME_REGEX = /^[\w-]{1,32}$/;
|
||||
|
||||
Reference in New Issue
Block a user