Zrzur Entwickler

SDKs

@zrzur/sdk ist die offizielle Zrzur-Bibliothek für Apps und Bots: TypeScript, ESM, Node 22.3 oder neuer (oder Deno 2.2 oder neuer, oder ein Browser). Ein Paket, drei Einstiege:

ImportWas
@zrzur/sdk/botBots: Slash-Befehle, Schaltflächen, Menüs, Formulare, Autovervollständigung, private und aufgeschobene Antworten, Embeds, Collector, Uploads
@zrzur/sdkDer Kern: der HTTP-Client (jede Route aus OpenAPI typisiert), das Gateway, die API-Typen, Ereignisse
@zrzur/sdk/solidDer Live-Client der Zrzur-App (SolidJS): Stores für Server, Kanäle und Nachrichten

SolidJS braucht nur @zrzur/sdk/solid; ein Bot lädt es nie herunter.

Es gibt auch @zrzur/bot, eine ältere, kleinere Bibliothek mit derselben Schnittstelle für Bots. Auch sie ist nicht veröffentlicht. Neue Bots sollten auf @zrzur/sdk/bot warten.

@zrzur/sdk/bot (für Bots)

import { Client } from "@zrzur/sdk/bot";

// Zrzur's own servers by default; a self-hosted server passes { apiUrl, wsUrl }
const client = new Client();
await client.login(process.env.ZRZUR_TOKEN);
BereichMethoden
Befehleclient.command, client.component, client.modal, client.autocomplete, client.syncCommands, client.fetchCommands
Antworteni.reply, i.defer, i.update, i.deferUpdate, i.showModal, i.respond, i.editReply, i.followUp, i.deleteReply
Ereignisseclient.on(type), client.onMessage, client.onMemberJoin, client.onMemberLeave, client.onReaction
Nachrichtenclient.messages.send, reply, fetch, fetchMany, edit, delete, bulkDelete, react, unreact, clearReactions, pin, unpin
Mitgliederclient.members.fetch, fetchAll, edit, addRole, removeRole, timeout, kick, ban, unban
Rollen, Kanäleclient.roles.*, client.channels.*
Benutzerclient.users.fetch, openDM, sendDM
Webhooksclient.webhooks.create, list, listForServer, fetch, fetchWithToken, edit, regenerateToken, delete, send, sendSlack, fetchMessage, editMessage, deleteMessage
Collectormessage.createMessageComponentCollector, message.awaitMessageComponent, interaction.awaitModalSubmit
Emojisclient.emojis.list, fetch, find, create, delete
Spracheclient.voice.nodes, client.voice.join
Alles andereclient.rest.get(path), post, put, patch, delete (für jede Route typisiert), client.rest.uploadFile(tag, data, name, type)

Fehler der API kommen als ApiError mit status, type, detail und nach einem 429 retryAfter. Kurze Ratenlimits werden abgewartet; nach einem globalen Limit wartet jede Anfrage, bis es zurückgesetzt ist. Das Gateway packt Bulk-Pakete aus und verbindet mit wachsender Wartezeit neu.

Jeder Endpunkt in dieser Referenz nennt die SDK-Methode, die ihn aufruft, wenn es eine gibt.

@zrzur/sdk (der Kern)

import { Api, Gateway, Intents } from "@zrzur/sdk";

const api = new Api({ baseURL: "https://api.zrzur.com", authentication: { bot: process.env.ZRZUR_TOKEN } });
const me = await api.get("/users/@me");

Nutze es für Werkzeuge, die nur die HTTP-API oder das Gateway brauchen, in jedem Framework.

@zrzur/sdk/solid (für Apps)

Der Client, auf dem die Zrzur-App aufbaut: ein Benutzer-Client mit Live-Stores für Server, Kanäle und Nachrichten. Er kann sich mit einem Bot-Token anmelden, hat aber keine Interaktions-API (Befehle, Komponenten, Formulare). Nutze ihn für Werkzeuge, die sich wie eine App verhalten; nutze @zrzur/sdk/bot für Bots.

Ohne SDK

Jede Funktion ist einfaches HTTP und WebSocket. Siehe Ohne Bibliothek.