Começando
Instalação e primeiro bot
Instale o pacote, autentique e suba a primeira sala.
Requisitos
- Node.js 20.18.1 ou superior.
- Uma conta do bonk.io (recomendado para salas 24/7).
- O pacote é ESM (
"type": "module"); também há build CommonJS.
Instalação
bash
npm install bonktools
# ou: pnpm add bonktools · yarn add bonktoolsO pacote traz suas dependências (socket.io-client, werift, ws, pino, zod, undici, eventemitter3) e inclui os tipos TypeScript.
Autenticação
A biblioteca aceita dois modos:
ts
import type { AuthOptions } from 'bonktools';
// Conta registada (recomendado para 24h)
const auth: AuthOptions = { type: 'registered', username: 'meu_usuario', password: 'minha_senha' };
// Convidado (sem chamada HTTP de autenticação)
const guest: AuthOptions = { type: 'guest', guestName: 'BonkBot' };Com type: 'registered', a biblioteca chama bonk2.io/scripts/login_legacy.php e reaproveita o token em todas as salas da mesma sessão.
Seu primeiro bot
Crie 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: 'Olá, bonk!', password: '', maxPlayers: 6, mode: 'b', rounds: 3 },
});
console.log('Link da sala:', room.shareLink);
room.on('player-join', (p) => room.chat(`Bem-vindo, ${p.userName}!`));
room.on('chat-message', ({ message }) => {
if (message === '!ping') room.chat('Pong!');
});Execute:
bash
BONK_USER=seu_usuario BONK_PASS=sua_senha npx tsx bot.tscreateRoom() só resolve depois que o servidor confirma a sala, então room.shareLink já está disponível.
E agora?
- Quer manter a sala viva sem supervisão? Veja Sessões 24/7.
- Quer um bot pronto de football? Veja a Sala 24/7 de referência.