EN English | RU русский | ES Español | FR Français | TR Türkçe | ZH 中文 | BR Português |
---|
Crie bots para o Minecraft com uma API JavaScript poderosa, estável e de alto nível.
Primeira vez usando o Node.js? Você pode querer começar com o tutorial tutorial
- Suporta 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 e 1.20.
- Conhecimento e rastreamento de entidades.
- Conhecimento de blocos. Você pode consultar o mundo ao seu redor em milissegundos para encontrar qualquer bloco.
- Física e movimento - lida com todas as caixas delimitadoras.
- Ataque a entidades e uso de veículos.
- Gerenciamento de inventário.
- Criação, baús, dispensadores, mesas de encantamento.
- Escavação e construção.
- Diversas funcionalidades, como saber sua saúde e se está chovendo.
- Ativação de blocos e uso de itens.
- Chat.
- Dê uma olhada em nossos projetos atuais
- Primeiro, instale o Node.js >= 18 a partir do nodejs.org
npm install mineflayer
Link | Descrição |
---|---|
tutorial | Comece com o Node.js e o Mineflayer |
FAQ_BR.md | Alguma dúvida? Confira isso |
api_br.md unstable_api_br.md | Toda a documentação da API |
history.md | Histórico de mudanças do Mineflayer |
examples/ | Todos os exemplos do Mineflayer |
Por favor, leia CONTRIBUTING_BR.md e prismarine-contribute
Vídeos
Você pode encontrar um tutorial que explica o processo de começar um bot aqui (em inglês).
Se você quiser aprender mais, pode verificar aqui, os códigos usados nos vídeos aqui
Começando
Se não for especificada uma versão, a versão do servidor será detectada automaticamente. Se nenhuma forma de autenticação for especificada, o login da Mojang será usado automaticamente.
const mineflayer = require('mineflayer')
const bot = mineflayer.createBot({
host: 'localhost', // IP do servidor de Minecraft
username: 'email@example.com', // Nome de usuário da conta, e-mail se for premium
password: '12345678' // Senha para servidores premium
// port: 25565, // Altere apenas se for um servidor que não usa a porta padrão (25565)
// version: false, // Altere apenas se for necessário uma versão específica
// auth: 'mojang', // Altere apenas se você tiver uma conta Microsoft (nesse caso, seria auth: 'microsoft')
})
bot.on('chat', (username, message) => {
if (username === bot.username) return
bot.chat(message)
})
// Imprimir erros e o motivo do kick se você for expulso:
bot.on('kicked', (reason, loggedIn) => console.log(reason, loggedIn))
bot.on('error', err => console.log(err))
Graças ao projeto prismarine-viewer, você pode visualizar em uma guia do seu navegador o que o seu bot está fazendo.
Tudo o que você precisa fazer é executar npm install prismarine-viewer
e adicionar o seguinte ao seu bot:
const { mineflayer: mineflayerViewer } = require('prismarine-viewer')
bot.once('spawn', () => {
mineflayerViewer(bot, { port: 3007, firstPerson: true }) // a porta é onde o plug-in será hospedado no navegador, e firstPerson é para escolher se você deseja a visualização em primeira pessoa ou não
})
E você poderá ver uma representação ao vivo como esta:
Exemplo | Descrição |
---|---|
viewer | Visualize o que seu bot vê no jogo |
pathfinder | Faça seu bot se locomover automaticamente para qualquer localização |
chest | Aprenda a usar baús, fornos, dispensadores e mesas de encantamento |
digger | Aprenda como criar um bot que pode quebrar blocos |
discord | Conecte um bot Discord com um bot Mineflayer |
jumper | Aprenda a se mover, pular, usar veículos e atacar entidades próximas |
ansi | Exibe todas as mensagens do chat no console com suas cores correspondentes |
guard | Crie um bot que defenda uma área predefinida de mobs |
multiple-from-file | Use um arquivo de texto com contas para criar bots |
Mais exemplos na pasta de exemplos
A maioria do desenvolvimento está ocorrendo em pequenos módulos npm que são usados pelo Mineflayer.
"Quando os aplicativos são bem feitos, eles são apenas o resíduo realmente específico da aplicação que não pode ser tão facilmente abstraído. Todos os componentes legais e reutilizáveis sublimam no GitHub e no npm, onde todos podem colaborar para avançar a comunidade." — substack de "como eu escrevo módulos"
Estes são os principais módulos que compõem o Mineflayer:
Módulo | Descrição |
---|---|
minecraft-protocol | Analisa e cria pacotes do Minecraft, autenticação e criptografia. |
minecraft-data | Módulo independente de linguagem que fornece dados do Minecraft para clientes, servidores e bibliotecas. |
prismarine-physics | Motor de física para entidades do Minecraft |
prismarine-chunk | Representa um pedaço do Minecraft |
node-vec3 | Usa vetores 3D com testes sólidos |
prismarine-block | Representa um bloco e suas informações associadas no Minecraft |
prismarine-chat | Analisador de mensagens de chat do Minecraft (retirado do Mineflayer) |
node-yggdrasil | Biblioteca Node.js para interagir com o sistema de autenticação da Mojang conhecido como Yggdrasil. |
prismarine-world | Implementação principal dos mundos do Minecraft para o Prismarine |
prismarine-windows | Representa as interfaces do Minecraft |
prismarine-item | Representa um item e suas informações associadas no Minecraft |
prismarine-nbt | Analisador de NBT para node-minecraft-protocol |
prismarine-recipe | Representa receitas de crafting do Minecraft |
prismarine-biome | Representa um bioma e suas informações associadas no Minecraft |
prismarine-entity | Representa uma entidade e suas informações associadas no Minecraft |
Você pode habilitar a depuração do protocolo usando a variável de ambiente DEBUG
:
DEBUG="minecraft-protocol" node [...]
No Windows:
set DEBUG=minecraft-protocol
node seu_arquivo.js
Mineflayer tem a capacidade de instalar plugins; qualquer pessoa pode criar um plugin que adiciona uma API de alto nível ao Mineflayer.
Os mais atualizados e úteis são:
- pathfinder - algoritmo de busca A* avançado com muitos recursos configuráveis
- prismarine-viewer - visualizador de chunks na web
- web-inventory - visualizador de inventário na web
- statemachine - API para comportamentos mais complexos
- Armor Manager - gerenciamento automático de armaduras
- Collect Block - API rápida e simples para coletar blocos.
- Dashboard - Painel de controle para um bot do Mineflayer
- PVP - API simples para PVP e PVE.
- auto-eat - Plugin para comer automaticamente.
- Tool - Plugin com uma API de alto nível para selecionar automaticamente a melhor arma/ferramenta.
- Hawkeye - Plugin para mirar automaticamente com arcos.
Mas também dê uma olhada em:
- radar - interface de radar na web usando canvas e socket.io Demo no Youtube
- blockfinder - encontra blocos no mundo tridimensional
- scaffold - ir para um destino específico mesmo que seja necessário construir ou quebrar blocos para alcançá-lo Demo no Youtube
- auto-auth - autenticação automática por chat
- Bloodhound - determina quem e/ou o que é responsável por causar dano a outra entidade
- tps - obter o tps atual (tps processado)
- panorama - tirar imagens panorâmicas do seu mundo
- rom1504/rbot
- Darthfett/Helperbot
- vogonistic/voxel - visualiza o que o bot está fazendo usando voxel.js
- JonnyD/Skynet - registra a atividade de um jogador em uma API online
- MinecraftChat (última versão de código aberto, criada por AlexKvazos) - Interface de chat na web para o Minecraft https://minecraftchat.net/
- Cheese Bot - bot com uma interface limpa. Feito com Node-Webkit. http://bot.ezcha.net/
- Chaoscraft - bot de Minecraft que usa algoritmos genéticos, veja seus vídeos no YouTube
- hexatester/minetelegram - ponte para o Telegram, feita com Mineflayer e Telegraf.
- e centenas mais - todos os projetos que usam o Mineflayer e foram detectados pelo GitHub.
Basta executar:
npm test
Execute
npm test -- -g <versão>
onde <versão>
é uma versão do Minecraft, como 1.12
, 1.15.2
...
Execute
npm test -- -g <nome_do_teste>
onde <nome_do_teste>
é o nome do teste que você deseja executar, como bed
, useChests
, rayTrace
...
Esta documentação não é oficialmente mantida. Para ver as últimas atualizações, consulte a documentação original: unstable_api