CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PrismarineJS

Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place. Commercial Alternative to JupyterHub.

GitHub Repository: PrismarineJS/mineflayer
Path: blob/master/docs/es/README_ES.md
Views: 789

Mineflayer

NPM version Build Status Discord Gitter Irc

Try it on gitpod

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

Características

  • 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.

Planes para el futuro

Echa un vistazo a nuestros proyectos actuales

Instalación

Primero instala Node.js >= 18 desde nodejs.org

npm install mineflayer

Documentación

linkdescripción
tutorialEmpieza con node.js y mineflayer
FAQ.mdAlguna duda? Echa un vistazo a esto
api.md unstable_api.mdToda la documentación de la API
history.mdHistorial de cambios de Mineflayer
examples/Todos los ejemplos de mineflayer

Contribuir

Por favor, lee CONTRIBUTING.md y prismarine-contribute

Uso

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í

tutorial 1 tutorial 2 tutorial 3 tutorial 4

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.

Ejemplo: echo

const mineflayer = require('mineflayer') const bot = mineflayer.createBot({ host: 'localhost', // ip del servidor de minecraft username: '[email protected]', // 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))

Mira lo que hace tu bot

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:

viewer

Más ejemplos

ejemplodescripción
viewerVisualiza lo que ve tu bot en el buscador
pathfinderHaz que tu bot vaya a cualquier ubicación automáticamente
chestAprende a usar cofres, hornos, dispensadores y mesas de encantamiento
diggerAprende como crear un bot que pueda romper un bloque
discordConecta un bot de discord con un bot de mineflayer
jumperAprende a moverte, saltar, ir en vehiculos y atacar entidades cercanas
ansiMuestra todos los mensajes que mandan al chat en tu consola con sus colores correspondientes
guardHaz un bot que defienda un área predefinida de mobs
multiple-from-fileUsa un archivo de texto con cuentas para crear bots

Más ejemplos en la carpeta de ejemplos

Módulos

La mayoría del desarrollo se está produciendo dentro de pequeños módulos npm que son usados por mineflayer

The Node Way™

"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"

Módulos

Estos son los módulos principales que forman mineflayer:

módulodescripción
minecraft-protocolAnaliza y crea paquetes de minecraft, autentificación and encriptación.
minecraft-dataMódulo independiente del lenguaje que provee datos de minecraft para clientes, servidores y librerías.
prismarine-physicsMotor de físicas para las entidades de minecraft
prismarine-chunkRepresenta un chunk de minecraft
node-vec3Usa vectores 3d con pruebas sólidas
prismarine-blockRepresenta un bloque y su información asociada de Minecraft
prismarine-chatAnalizador para los mensajes de chat de minecraft (extraído de mineflayer)
node-yggdrasilLibrería Node.js para interactuar con el sistema de autentificación de Mojang conocido como Yggdrasil.
prismarine-worldImplementación principal de los mundos de Minecraft para Prismarine
prismarine-windowsRepresenta las interfaces de minecraft
prismarine-itemRepresenta un item y su información asociada de Minecraft
prismarine-nbtAnalizador de NBT para node-minecraft-protocol
prismarine-recipeRepresenta recetas/crafteos de Minecraft
prismarine-biomeRepresenta un bioma y su información asociada de Minecraft
prismarine-entityRepresenta una entidad y su información asociada de Minecraft

Depuración

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

Plugins de terceros

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

Proyectos que utilizan Mineflayer

Pruebas

Ejecuta todas las pruebas

Simplemente ejecuta:

npm test

Ejecuta pruebas para una versión específica de Minecraft

Ejecuta

npm test -- -g <version>

donde <version> es una versión de minecraft como 1.12, 1.15.2...

Ejecuta una prueba específica

Ejecuta

npm test -- -g <test_name>

donde <test_name> es el nombre de la prueba que quieres ejecutar como bed, useChests, rayTrace...

Licencia

MIT

Esta documentación no está mantenida oficialmente, si quiere ver las últimas novedades, por favor dirijase a la documentación original: unstable_api