Automatische ÜbersetzungDiese Seite wurde automatisch übersetzt. Das englische Original ist maßgeblich.Lesen Sie diese Seite auf Englisch

JavaScript-Client — `@disband/bot`

Der offizielle JavaScript-Client. Null Laufzeitabhängigkeiten - er verwendet nur fetch und Standardglobale - und funktioniert von Node.js 18+, Deno, Bun und dem Browser.

installieren

npm install @disband/bot

Oder von diesem Monorepo:

npm install /path/to/packages/bot

Schneller Start

import { Client } from "@disband/bot";

const client = new Client({ token: process.env.DISBAND_BOT_TOKEN });

client.on("ready", (me) => {
  console.log(`Logged in as ${me.name} (${me.scopes.join(", ")})`);
});

client.on("messageCreate", async (message) => {
  if (message.author?.is_bot) return;
  if (message.content !== "!ping") return;
  await message.reply("pong");
});

await client.connect();

Konstrukteur

`new Client({ token, baseUrl?, gatewayTimeout? })`

Option Typ Standard Beschreibung
token string (erforderlich) Der Bot-Token von Einstellungen → Bots.
baseUrl string "https://www.disband.dev" API root (Ändern Sie für eine benutzerdefinierte Domain).
gatewayTimeout number 20 Sekunden pro Gateway-Abfrage (1-20).

Lebenszyklus

Methode Beschreibung
connect() Löscht die Bot-Identität (GET /api/bot/me), sendet ready und startet den Gateway-Zyklus. Löscht sich nach der Verbindung.
close() Stoppt den Gateway-Zyklus.
connected Boolescher Wert: ob der Schleifenlauf derzeit läuft.

Veranstaltungen

Registrieren Sie sich mit client.on(name, handler); einige sind async. once und off funktionieren genauso wie sie in Nodes EventEmitter funktionieren.

Ereignis Argumente Anmerkungen
ready user user.id, user.userId, user.name, user.username, user.avatarUrl, user.scopes.
messageCreate message Eine neue Nachricht auf einem Server, die der Bot sehen kann.
messageUpdate message Eine Nachricht wurde bearbeitet (content, editedAt aktualisiert).
messageDelete message Eine Nachricht wurde gelöscht (content leer; id/channelId gültig).
error error Gateway-Fehler. Der Schleifenversuch wird automatisch wiederholt, es sei denn, der Token ist ungültig, in diesem Fall hört er auf.
debug * Beobachtbarkeit auf niedrigem Niveau.

`Message`

Feld Typ Beschreibung
id string Nachrichtennummer.
channelId string Kanal-ID.
serverId string | null Server-ID.
author object | null { id, username, display_name, avatar_url, is_bot }.
content string Nachrichtentext.
replyToId string | null Die Nachricht, auf die dies antwortet, falls vorhanden.
mentions array Genannte Benutzer.
attachment object | null { url, type } wenn die Nachricht eine Datei enthält.
createdAt string | null ISO-Zeitstempel.
editedAt string | null ISO-Zeitstempel der letzten Bearbeitung.
displayId number | null Die sequenzielle Anzeige-Nummer.

Methoden - message.reply(content) (Antworten im selben Kanal) und der message.authorIsBot-Getter (wahr, wenn der Absender ein Bot war).

Methoden

await client.sendMessage(channelId, "Deploy finished");          // send
await message.reply("pong");                                      // reply to a received message

const messages = await client.listMessages(channelId, { limit: 25, before: "…" });
const channels  = await client.listChannels(serverId);
const members   = await client.listMembers(serverId);

const channelId = await client.createChannel(serverId, "deploys", { type: "text", categoryId: null });
await client.renameChannel(channelId, "deploys-2");
await client.deleteChannel(channelId);

await client.leaveServer(serverId);

const invite = await client.createInvite(serverId, ["messages.read", "messages.write"]);
// invite.invite_url -> send to the server owner

Fehler

Geworfene Fehler tragen den Status und den Körper bei:

Fehler Wenn
AuthError 401 - ungültiger oder widerrufener Token. Der Gateway-Zyklus hört hier an.
PermissionError 403 - fehlende Zugriffsberechtigung für den Bereich oder die Rolle.
RateLimitError 429 - enthält retryAfter Sekunden.
HttpError Jeder andere nicht-2xx-Status.

Intern ist der Client ein dünner Wrapper über den API-Referenz: REST.get/post/patch/delete mit Authorization: Bot <token>.