Skip to content

Latest commit

 

History

History
245 lines (181 loc) · 14.3 KB

README_ES.md

File metadata and controls

245 lines (181 loc) · 14.3 KB

Mineflayer

NPM version Build Status Discord Gitter Irc

Try it on gitpod

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

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

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

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@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))

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

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

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

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