On This Page

Emoji and Stickers

12 symbols from @neontechspace/fluxerly/effect

Interfaces#

Emojis#

Read, upload, rename, clone or delete custom emoji

Methods return Effects and share guild HTTP concurrency limits, deadlines and GuildOperationError failures. Reads retry eligible transient failures at most twice. Writes retry only confirmed 429 rejections. Input, permission, 404 and malformed responses do not retry. Unknown outcomes may leave writes applied. Effects start when executed, use the caller's services and await cleanup on interruption. Defects remain in Cause. Closing clients fail with ClientClosedError. Snapshots are frozen and HTTP success is not gateway acknowledgement

interface Emojis

clone#

Copy an emoji into a community by its source ID, using Fluxer's server-side copy

Source metadata is preserved. Fluxer enforces source copying restrictions

clone(
    guildId: string,
    sourceId: string,
    options?: AuditedRequestOptions
): Effect<GuildEmoji, GuildOperationFailure>clone(
  guildId: string,
  sourceId: string,
  options?: AuditedRequestOptions
): Effect<
  GuildEmoji,
  GuildOperationFailure
>

Parameters

guildId
string
sourceId
string
options optional
AuditedRequestOptions

create#

Upload one community emoji and return its metadata

Inputs are copied when execution starts. No image URL is fetched automatically. Fluxer checks image format, dimensions, permissions and capacity. A write with an unknown outcome is not replayed

create(
    guildId: string,
    input: EmojiCreate,
    options?: AuditedRequestOptions
): Effect<GuildEmoji, GuildOperationFailure>create(
  guildId: string,
  input: EmojiCreate,
  options?: AuditedRequestOptions
): Effect<
  GuildEmoji,
  GuildOperationFailure
>

Parameters

guildId
string
options optional
AuditedRequestOptions

createMany#

Upload 1–50 community emojis in one batch and return separate successes and failures

The input array is copied by index, then its entries are copied when execution starts. Some uploads can succeed while others fail. No rollback or automatic chunking is performed. Failures named by duplicate emoji names cannot be matched reliably to input positions. After an unknown outcome, fetch fresh remote data rather than blindly replaying the batch

createMany(
    guildId: string,
    input: readonly EmojiCreate[],
    options?: AuditedRequestOptions
): Effect<ExpressionBatch<GuildEmoji>, GuildOperationFailure>createMany(
  guildId: string,
  input: readonly EmojiCreate[],
  options?: AuditedRequestOptions
): Effect<
  ExpressionBatch<GuildEmoji>,
  GuildOperationFailure
>

Parameters

guildId
string
input
readonly EmojiCreate[]
options optional
AuditedRequestOptions

delete#

Remove an emoji, succeeding with no value after HTTP 204

Retained metadata is invalidated. A missing target is an error, not proof of an earlier deletion. The purge option defaults to false. Setting it to true also queues irreversible media removal, subject to Fluxer's restrictions

delete(
    target: ExpressionReference,
    options?: ExpressionDeleteOptions
): Effect<void, GuildOperationFailure>delete(
  target: ExpressionReference,
  options?: ExpressionDeleteOptions
): Effect<
  void,
  GuildOperationFailure
>

Parameters

options optional
ExpressionDeleteOptions

edit#

Rename a community emoji without changing its image or fetching its old metadata first

edit(
    target: ExpressionReference,
    input: EmojiEdit,
    options?: AuditedRequestOptions
): Effect<GuildEmoji, GuildOperationFailure>edit(
  target: ExpressionReference,
  input: EmojiEdit,
  options?: AuditedRequestOptions
): Effect<
  GuildEmoji,
  GuildOperationFailure
>

Parameters

input
EmojiEdit
options optional
AuditedRequestOptions

fetchAll#

Fetch a community's emoji list in Fluxer's order, without pagination

The list can change after the response and is not an ongoing completeness guarantee. An enabled metadata cache can retain results, but not image bytes or creator accounts

fetchAll(
    guildId: string,
    options?: RequestOptions
): Effect<readonly GuildEmoji[], GuildOperationFailure>fetchAll(
  guildId: string,
  options?: RequestOptions
): Effect<
  readonly GuildEmoji[],
  GuildOperationFailure
>

Parameters

guildId
string
options optional
RequestOptions

fetchMetadata#

Fetch minimal emoji metadata by decimal ID, without requiring source-community membership

This read does not populate the cache

fetchMetadata(
    id: string,
    options?: RequestOptions
): Effect<ExpressionMetadata, GuildOperationFailure>fetchMetadata(
  id: string,
  options?: RequestOptions
): Effect<
  ExpressionMetadata,
  GuildOperationFailure
>

Parameters

id
string
options optional
RequestOptions

fetchSource#

Fetch the public presentation of the community that owns a custom emoji with this decimal ID: Its ID, name, icon hash and badges

Fluxer answers when the source community is discoverable or the bot is a member of it. A private source community the bot is not in, an unavailable community or an unknown emoji fails with GuildOperationError whose apiError.code is unknownResource, without revealing which case applies. This read does not populate the cache, and the result does not update when the community changes

fetchSource(
    id: string,
    options?: RequestOptions
): Effect<ExpressionSourceGuild, GuildOperationFailure>fetchSource(
  id: string,
  options?: RequestOptions
): Effect<
  ExpressionSourceGuild,
  GuildOperationFailure
>

Parameters

id
string
options optional
RequestOptions

get#

Look up cached emoji metadata using decimal guildId and id, without an HTTP request

The result is undefined when caching is disabled or the entry is absent, expired or invalidated by a conflicting change. A hit becomes more recently used without extending expiry. An invalid ID is misuse: The default API throws GuildOperationError with reason input and the native API dies with it. A closing or closed client has no cache, so the result is undefined

get(target: ExpressionReference): Effect<GuildEmoji | undefined>get(
  target: ExpressionReference
): Effect<GuildEmoji | undefined>

Parameters

Returns
Effect<GuildEmoji | undefined>

Stickers#

Read, upload, edit, clone or delete custom stickers

Methods return Effects and share guild HTTP concurrency limits, deadlines and GuildOperationError failures. Reads retry eligible transient failures at most twice. Writes retry only confirmed 429 rejections. Input, permission, 404 and malformed responses do not retry. Unknown outcomes may leave writes applied. Effects start when executed, use the caller's services and await cleanup on interruption. Defects remain in Cause. Closing clients fail with ClientClosedError. Snapshots are frozen and HTTP success is not gateway acknowledgement

interface Stickers

clone#

Copy a sticker into a community by its source ID, using Fluxer's server-side copy

Source metadata is preserved. Fluxer enforces source copying restrictions

clone(
    guildId: string,
    sourceId: string,
    options?: AuditedRequestOptions
): Effect<GuildSticker, GuildOperationFailure>clone(
  guildId: string,
  sourceId: string,
  options?: AuditedRequestOptions
): Effect<
  GuildSticker,
  GuildOperationFailure
>

Parameters

guildId
string
sourceId
string
options optional
AuditedRequestOptions

create#

Upload one community sticker and return its metadata

Inputs are copied when execution starts. No image URL is fetched automatically. Fluxer checks image format, dimensions, permissions and capacity. A write with an unknown outcome is not replayed

create(
    guildId: string,
    input: StickerCreate,
    options?: AuditedRequestOptions
): Effect<GuildSticker, GuildOperationFailure>create(
  guildId: string,
  input: StickerCreate,
  options?: AuditedRequestOptions
): Effect<
  GuildSticker,
  GuildOperationFailure
>

Parameters

guildId
string
options optional
AuditedRequestOptions

createMany#

Upload 1–50 community stickers in one batch and return separate successes and failures

The input array is copied by index, then its entries are copied when execution starts. Some uploads can succeed while others fail. No rollback or automatic chunking is performed. Failures named by duplicate sticker names cannot be matched reliably to input positions. After an unknown outcome, fetch fresh remote data rather than blindly replaying the batch

createMany(
    guildId: string,
    input: readonly StickerCreate[],
    options?: AuditedRequestOptions
): Effect<ExpressionBatch<GuildSticker>, GuildOperationFailure>createMany(
  guildId: string,
  input: readonly StickerCreate[],
  options?: AuditedRequestOptions
): Effect<
  ExpressionBatch<GuildSticker>,
  GuildOperationFailure
>

Parameters

guildId
string
input
readonly StickerCreate[]
options optional
AuditedRequestOptions

delete#

Remove a sticker, succeeding with no value after HTTP 204

Retained metadata is invalidated. A missing target is an error, not proof of an earlier deletion. The purge option defaults to false. Setting it to true also queues irreversible media removal, subject to Fluxer's restrictions

delete(
    target: ExpressionReference,
    options?: ExpressionDeleteOptions
): Effect<void, GuildOperationFailure>delete(
  target: ExpressionReference,
  options?: ExpressionDeleteOptions
): Effect<
  void,
  GuildOperationFailure
>

Parameters

options optional
ExpressionDeleteOptions

edit#

Replace a sticker's name, description and tags without changing its image or fetching it first

A fetched sticker can be spread into input if its identity matches the target. Unknown fields fail locally. An empty or null description clears it, and [] clears tags. The namespace's write, failure and cancellation rules apply

edit(
    target: ExpressionReference,
    input: StickerEdit,
    options?: AuditedRequestOptions
): Effect<GuildSticker, GuildOperationFailure>edit(
  target: ExpressionReference,
  input: StickerEdit,
  options?: AuditedRequestOptions
): Effect<
  GuildSticker,
  GuildOperationFailure
>

Parameters

options optional
AuditedRequestOptions

fetchAll#

Fetch a community's sticker list in Fluxer's order, without pagination

The list can change after the response and is not an ongoing completeness guarantee. An enabled metadata cache can retain results, but not image bytes or creator accounts

fetchAll(
    guildId: string,
    options?: RequestOptions
): Effect<readonly GuildSticker[], GuildOperationFailure>fetchAll(
  guildId: string,
  options?: RequestOptions
): Effect<
  readonly GuildSticker[],
  GuildOperationFailure
>

Parameters

guildId
string
options optional
RequestOptions

fetchMetadata#

Fetch minimal sticker metadata by decimal ID, without requiring source-community membership

This read does not populate the cache

fetchMetadata(
    id: string,
    options?: RequestOptions
): Effect<ExpressionMetadata, GuildOperationFailure>fetchMetadata(
  id: string,
  options?: RequestOptions
): Effect<
  ExpressionMetadata,
  GuildOperationFailure
>

Parameters

id
string
options optional
RequestOptions

fetchSource#

Fetch the public presentation of the community that owns a custom sticker with this decimal ID: Its ID, name, icon hash and badges

Fluxer answers when the source community is discoverable or the bot is a member of it. A private source community the bot is not in, an unavailable community or an unknown sticker fails with GuildOperationError whose apiError.code is unknownResource, without revealing which case applies. This read does not populate the cache, and the result does not update when the community changes

fetchSource(
    id: string,
    options?: RequestOptions
): Effect<ExpressionSourceGuild, GuildOperationFailure>fetchSource(
  id: string,
  options?: RequestOptions
): Effect<
  ExpressionSourceGuild,
  GuildOperationFailure
>

Parameters

id
string
options optional
RequestOptions

get#

Look up cached sticker metadata using decimal guildId and id, without an HTTP request

The result is undefined when caching is disabled or the entry is absent, expired or invalidated by a conflicting change. A hit becomes more recently used without extending expiry. An invalid ID is misuse: The default API throws GuildOperationError with reason input and the native API dies with it. A closing or closed client has no cache, so the result is undefined

get(target: ExpressionReference): Effect<GuildSticker | undefined>get(
  target: ExpressionReference
): Effect<GuildSticker | undefined>

Parameters

Returns
Effect<GuildSticker | undefined>

Re-Exports#

Declared in JavaScript & TypeScript and documented there. Import them from @neontechspace/fluxerly/effect as well

EmojiCreate#
Upload an image as a named custom community emoji for messages and reactions
EmojiEdit#
Rename an emoji without replacing its image
ExpressionBatch#
Results of creating emoji or stickers in one batch request
ExpressionMetadata#
Public name and animation information returned by fetchMetadata without requiring source-community membership
ExpressionReference#
Address a custom emoji or sticker by its owning community and resource ID
ExpressionSourceGuild#
Public presentation of the community that owns a custom emoji or sticker, returned by fetchSource
GuildEmoji#
A community's custom emoji identity, name and animation flag
GuildSticker#
A community's custom sticker identity and display metadata, including its description and suggestion tags
StickerCreate#
Upload a named custom sticker with optional description and suggestion tags
StickerEdit#
Replace sticker metadata without reading or merging remote state