Erste Schritte

Installation und erster Bot

Installiere das Paket, authentifiziere dich und starte deinen ersten Raum.

Voraussetzungen

  • Node.js 20.18.1 oder neuer.
  • Ein bonk.io-Konto (empfohlen für 24/7-Räume).
  • Das Paket ist ESM ("type": "module"); ein CommonJS-Build wird ebenfalls mitgeliefert.

Installation

bash
npm install bonktools
# oder: pnpm add bonktools · yarn add bonktools

Das Paket bringt seine Abhängigkeiten mit (socket.io-client, werift, ws, pino, zod, undici, eventemitter3) und liefert die TypeScript-Typen.

Authentifizierung

Die Bibliothek unterstützt zwei Modi:

ts
import type { AuthOptions } from 'bonktools';

// Registriertes Konto (empfohlen für 24/7)
const auth: AuthOptions = { type: 'registered', username: 'mein_benutzer', password: 'mein_passwort' };

// Gast (ohne HTTP-Authentifizierungsaufruf)
const guest: AuthOptions = { type: 'guest', guestName: 'BonkBot' };

Mit type: 'registered' ruft die Bibliothek bonk2.io/scripts/login_legacy.php auf und verwendet das Token für alle Räume derselben Sitzung wieder.

Dein erster Bot

Erstelle bot.ts:

ts
import { createRoom } from 'bonktools';

const room = await createRoom({
  auth: { type: 'registered', username: process.env.BONK_USER!, password: process.env.BONK_PASS! },
  desiredState: { roomName: 'Hallo, bonk!', password: '', maxPlayers: 6, mode: 'b', rounds: 3 },
});

console.log('Raumlink:', room.shareLink);

room.on('player-join', (p) => room.chat(`Willkommen, ${p.userName}!`));
room.on('chat-message', ({ message }) => {
  if (message === '!ping') room.chat('Pong!');
});

Führe ihn aus:

bash
BONK_USER=dein_benutzer BONK_PASS=dein_passwort npx tsx bot.ts

createRoom() wird erst aufgelöst, nachdem der Server den Raum bestätigt hat, daher ist room.shareLink bereits verfügbar.

Wie geht es weiter?