Primeros pasos
Instalación y primer bot
Instala el paquete, autentícate y levanta tu primera sala.
Requisitos
- Node.js 20.18.1 o superior.
- Una cuenta de bonk.io (recomendada para salas 24/7).
- El paquete es ESM (
"type": "module"); también se ofrece una compilación CommonJS.
Instalación
bash
npm install bonktools
# o: pnpm add bonktools · yarn add bonktoolsEl paquete trae sus dependencias (socket.io-client, werift, ws, pino, zod, undici, eventemitter3) e incluye los tipos de TypeScript.
Autenticación
La biblioteca admite dos modos:
ts
import type { AuthOptions } from 'bonktools';
// Cuenta registrada (recomendado para 24/7)
const auth: AuthOptions = { type: 'registered', username: 'mi_usuario', password: 'mi_contraseña' };
// Invitado (sin llamada HTTP de autenticación)
const guest: AuthOptions = { type: 'guest', guestName: 'BonkBot' };Con type: 'registered', la biblioteca llama a bonk2.io/scripts/login_legacy.php y reutiliza el token en todas las salas de la misma sesión.
Tu primer bot
Crea 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: '¡Hola, bonk!', password: '', maxPlayers: 6, mode: 'b', rounds: 3 },
});
console.log('Enlace de la sala:', room.shareLink);
room.on('player-join', (p) => room.chat(`Bienvenido, ${p.userName}!`));
room.on('chat-message', ({ message }) => {
if (message === '!ping') room.chat('Pong!');
});Ejecútalo:
bash
BONK_USER=tu_usuario BONK_PASS=tu_contraseña npx tsx bot.tscreateRoom() solo se resuelve cuando el servidor confirma la sala, así que room.shareLink ya está disponible.
¿Y ahora?
- ¿Quieres mantener la sala viva sin supervisión? Consulta Sesiones 24/7.
- ¿Quieres un bot de fútbol ya hecho? Consulta la Sala 24/7 de referencia.