Pour commencer
Installation et premier bot
Installez le paquet, authentifiez-vous et lancez votre premier salon.
Prérequis
- Node.js 20.18.1 ou plus récent.
- Un compte bonk.io (recommandé pour les salons 24h/24).
- Le paquet est en ESM (
"type": "module") ; une version CommonJS est aussi fournie.
Installation
bash
npm install bonktools
# ou : pnpm add bonktools · yarn add bonktoolsLe paquet apporte ses dépendances (socket.io-client, werift, ws, pino, zod, undici, eventemitter3) et fournit les types TypeScript.
Authentification
La bibliothèque prend en charge deux modes :
ts
import type { AuthOptions } from 'bonktools';
// Compte enregistré (recommandé pour le 24h/24)
const auth: AuthOptions = { type: 'registered', username: 'mon_utilisateur', password: 'mon_mot_de_passe' };
// Invité (sans appel HTTP d'authentification)
const guest: AuthOptions = { type: 'guest', guestName: 'BonkBot' };Avec type: 'registered', la bibliothèque appelle bonk2.io/scripts/login_legacy.php et réutilise le token pour tous les salons d'une même session.
Votre premier bot
Créez 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: 'Bonjour, bonk !', password: '', maxPlayers: 6, mode: 'b', rounds: 3 },
});
console.log('Lien du salon :', room.shareLink);
room.on('player-join', (p) => room.chat(`Bienvenue, ${p.userName}!`));
room.on('chat-message', ({ message }) => {
if (message === '!ping') room.chat('Pong!');
});Lancez-le :
bash
BONK_USER=votre_utilisateur BONK_PASS=votre_mot_de_passe npx tsx bot.tscreateRoom() ne se résout qu'après la confirmation du salon par le serveur, donc room.shareLink est déjà disponible.
Et ensuite ?
- Vous voulez garder le salon actif sans surveillance ? Voir Sessions 24h/24.
- Vous voulez un bot de football tout prêt ? Voir le Salon 24h/24 de référence.