EN English | RU русский | ES Español | FR Français | TR Türkçe | ZH 中文 | BR Português |
---|
Crea bots para Minecraft con una API de JavaScript potente, estable y de alto nivel.
¿Primera vez usando node.js? Puede que quieras empezar con el tutorial tutorial
- Soporta Minecraft 1.8, 1.9, 1.10, 1.11, 1.12, 1.13, 1.14, 1.15, 1.16, 1.17, 1.18, 1.19 y 1.20.
- Rastreo e información de entidades.
- Información sobre bloques. Puedes solicitar información de todo lo que te rodea. Encuentra bloques en milisegundos
- Físicas y movimientos básicos - maneja todos los cuadros de colisión
- Atacar entidades y usar vehículos.
- Gestión del inventario.
- Crafteo, cofres, dispensadores, mesas de encantamiento.
- Cavar y contruir.
- Diversas cosas como saber tu salud y si está lloviendo.
- Activar bloques y usar ítems.
- Chatear/Hablar.
Echa un vistazo a nuestros proyectos actuales
Primero instala Node.js >= 18 desde nodejs.org
npm install mineflayer
link | descripción |
---|---|
tutorial | Empieza con node.js y mineflayer |
FAQ.md | Alguna duda? Echa un vistazo a esto |
api.md unstable_api.md | Toda la documentación de la API |
history.md | Historial de cambios de Mineflayer |
examples/ | Todos los ejemplos de mineflayer |
Por favor, lee CONTRIBUTING.md y prismarine-contribute
Vídeos
Puedes encontrar un tutorial que explica el proceso de como empezar un bot aquí (en inglés).
Si quieres aprender más, puedes mirar aquí, los códigos usados en los vídeos aquí
Empezando
Si no se especifica una versión, la versión del servidor se detectará automáticamente. Si no se especifica ningún tipo de autenticación, se utilizará el login de Mojang automáticamente.
const mineflayer = require('mineflayer')
const bot = mineflayer.createBot({
host: 'localhost', // ip del servidor de minecraft
username: 'email@example.com', // usuario de la cuenta, e-mail si es premium
password: '12345678' // para servidores premium
// port: 25565, // modificar solo si es un servidor que no utiliza el puerto predeterminado (25565)
// version: false, // modificar solo si se necesita una version específica
// auth: 'mojang', // solo modificar si tienes una cuenta microsoft (en ese caso sería auth: 'microsoft')
})
bot.on('chat', (username, message) => {
if (username === bot.username) return
bot.chat(message)
})
// Imprimir errores y la razón del kickeo si te kickean:
bot.on('kicked', (reason, loggedIn) => console.log(reason, loggedIn))
bot.on('error', err => console.log(err))
Gracias al proyecto prismarine-viewer, puedes ver en una pestaña del navegador qué está haciendo tu bot.
Solo tienes que ejecutar npm install prismarine-viewer
y añadir lo siguiente a tu bot:
const { mineflayer: mineflayerViewer } = require('prismarine-viewer')
bot.once('spawn', () => {
mineflayerViewer(bot, { port: 3007, firstPerson: true }) // el puerto es en que puerto del buscador hostear el plugin, y firstPerson es por si quieres la vista en primera persona o no
})
Y podrás ver una representación en vivo como esta:
ejemplo | descripción |
---|---|
viewer | Visualiza lo que ve tu bot en el buscador |
pathfinder | Haz que tu bot vaya a cualquier ubicación automáticamente |
chest | Aprende a usar cofres, hornos, dispensadores y mesas de encantamiento |
digger | Aprende como crear un bot que pueda romper un bloque |
discord | Conecta un bot de discord con un bot de mineflayer |
jumper | Aprende a moverte, saltar, ir en vehiculos y atacar entidades cercanas |
ansi | Muestra todos los mensajes que mandan al chat en tu consola con sus colores correspondientes |
guard | Haz un bot que defienda un área predefinida de mobs |
multiple-from-file | Usa un archivo de texto con cuentas para crear bots |
Más ejemplos en la carpeta de ejemplos
La mayoría del desarrollo se está produciendo dentro de pequeños módulos npm que son usados por mineflayer
"When applications are done well, they are just the really application-specific, brackish residue that can't be so easily abstracted away. All the nice, reusable components sublimate away onto github and npm where everybody can collaborate to advance the commons." — substack from "how I write modules"
Estos son los módulos principales que forman mineflayer:
módulo | descripción |
---|---|
minecraft-protocol | Analiza y crea paquetes de minecraft, autentificación and encriptación. |
minecraft-data | Módulo independiente del lenguaje que provee datos de minecraft para clientes, servidores y librerías. |
prismarine-physics | Motor de físicas para las entidades de minecraft |
prismarine-chunk | Representa un chunk de minecraft |
node-vec3 | Usa vectores 3d con pruebas sólidas |
prismarine-block | Representa un bloque y su información asociada de Minecraft |
prismarine-chat | Analizador para los mensajes de chat de minecraft (extraído de mineflayer) |
node-yggdrasil | Librería Node.js para interactuar con el sistema de autentificación de Mojang conocido como Yggdrasil. |
prismarine-world | Implementación principal de los mundos de Minecraft para Prismarine |
prismarine-windows | Representa las interfaces de minecraft |
prismarine-item | Representa un item y su información asociada de Minecraft |
prismarine-nbt | Analizador de NBT para node-minecraft-protocol |
prismarine-recipe | Representa recetas/crafteos de Minecraft |
prismarine-biome | Representa un bioma y su información asociada de Minecraft |
prismarine-entity | Representa una entidad y su información asociada de Minecraft |
Puedes habilitar la depuración del protocolo utilizando la variable de entorno DEBUG
:
DEBUG="minecraft-protocol" node [...]
En windows :
set DEBUG=minecraft-protocol
node tu_archivo.js
Mineflayer tiene la capacidad de instalar plugins; cualquiera puede crear un plugin que agregue un API de nivel superior a Mineflayer.
Los más actualizados y útiles son:
- pathfinder - algoritmo de busqueda A* avanzado con muchas características configurables
- prismarine-viewer - visualizador de chunks en la web
- web-inventory - visualizador de inventario en la web
- statemachine - API para comportamientos más complejos
- Armor Manager - gestión automática de armaduras
- Collect Block - API rápida y simple para recolectar bloques.
- Dashboard - Panel de instrumentos para un bot de Mineflayer
- PVP - API sencilla para PVP y PVE.
- auto-eat - Plugin para comer automáticamente.
- Tool - Plugin con un API de alto nivel para seleccionar automáticamente la mejor arma/herramienta.
- Hawkeye - Plugin para apuntar automáticamente con arcos.
Pero también echa un vistazo a:
- radar - interfaz de radar en la web utilizando canvas y socket.io Demo en Youtube
- blockfinder - encuentra bloques en el mundo tridimensional
- scaffold - ir a un destino específico incluso si es necesario construir o rompler bloques para lograrlo Demo en Youtube
- auto-auth - autentificación automática por chat
- Bloodhound - determina quién y/o qué es responsable de dañar a otra entidad
- tps - obtener el tps actual (tps procesado)
- panorama - toma imágenes panorámicas de tu mundo
- rom1504/rbot
- Darthfett/Helperbot
- vogonistic/voxel - visualiza que está haciendo el bot, utilizando voxel.js
- JonnyD/Skynet - registra la actividad de un jugador en una API en línea
- MinecraftChat (última versión de código libre, creada por AlexKvazos) - Interfaz de chat en la web para Minecraft https://minecraftchat.net/
- Cheese Bot - bot con una interfaz limpia. Hecho con Node-Webkit. http://bot.ezcha.net/
- Chaoscraft - bot de Minecraft que utiliza algoritmos genéticos, ver sus videos de youtube
- hexatester/minetelegram - puente para Telegram, hecho con Mineflayer y Telegraf.
- and hundreds more - todos los proyectos que usan mineflayer y que han sido detectados por github
Simplemente ejecuta:
npm test
Ejecuta
npm test -- -g <version>
donde <version>
es una versión de minecraft como 1.12
, 1.15.2
...
Ejecuta
npm test -- -g <test_name>
donde <test_name>
es el nombre de la prueba que quieres ejecutar como bed
, useChests
, rayTrace
...
Esta documentación no está mantenida oficialmente, si quiere ver las últimas novedades, por favor dirijase a la documentación original: unstable_api