14 KiB
Mineflayer
| 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
Recursos
- 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.
Planos para o Futuro
- Dê uma olhada em nossos projetos atuais
Instalação
- Primeiro, instale o Node.js >= 18 a partir do nodejs.org
npm install mineflayer
Documentação
| 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 |
Contribuições
Por favor, leia CONTRIBUTING_BR.md e prismarine-contribute
Uso
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.
Exemplo: echo
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))
Veja o que o seu bot faz
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:
Exemplos Ruins
| 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
Módulos
A maioria do desenvolvimento está ocorrendo em pequenos módulos npm que são usados pelo Mineflayer.
O Caminho do Node™
"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"
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 |
Depuração
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
Plugins de Terceiros
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
Projetos que Usam o Mineflayer
- 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.
Testes
Executar Todos os Testes
Basta executar:
npm test
Executar Testes para uma Versão Específica do Minecraft
Execute
npm test -- -g <versão>
onde <versão> é uma versão do Minecraft, como 1.12, 1.15.2...
Executar um Teste Específico
Execute
npm test -- -g <nome_do_teste>
onde <nome_do_teste> é o nome do teste que você deseja executar, como bed, useChests, rayTrace...
Licença
Esta documentação não é oficialmente mantida. Para ver as últimas atualizações, consulte a documentação original: unstable_api




