14 KiB
Mineflayer
EN English | RU русский | ES Español | FR Français | TR Türkçe | ZH 中文 |
---|
JavaScript ile güçlü, stabil ve üst seviye Minecraft botları oluşturabileceğiniz bir API.
İlk defa mı Node.js kullanıyorsun? Öğretici ile başlayabilirsin.
Özellikler
- 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 ve 1.20 sürümlerini destekler.
- Varlık bilgisi ve takibi.
- Blok bilgisi. Etrafını inceleyebilirsin. Bir bloğu bulmak milisaniyeler sürer.
- Fizik ve hareket - bütün hayali kutucukları ele alabilirsin
- Canlılara saldırma ve taşıtları kullanma.
- Envanter düzenleme.
- Çalışma masaları, sandıklar, fırlatıcılar, büyü masaları.
- Blok kazma ve koyma.
- Can sayını ve yağmur yağıp yapmadığını öğrenmek gibi ekstra özellikler.
- Eşyaları kullanma ve blokları aktifleştirme.
- Sohbet.
Yol Haritası
Bu sayfayı ziyaret ederek projelerin durumlarını öğrenebilirsin.
Kurulum
Node.js 14 veya üstü bir sürümü nodejs.org adresinden indirip kurduktan sonra mineflayer'ı npm install mineflayer
ile kurabilirsin.
Belgeler / Wiki
link | açıklama |
---|---|
Öğretici | Node.js ve mineflayer öğren |
FAQ.md | Aklına bir şey mi takıldı? Buraya bak. |
api.md unstable_api.md | API hakkında her şey |
history.md | Değişikliklerin listesi |
examples/ | Tüm mineflayer örnekleri |
Katkıda bulun
Katkıda bulunmadan önce lütfen CONTRIBUTING.md ve prismarine-contribute dosyalarını oku.
Kullanım
Videolar
Bir botun temel kurulum sürecini açıklayan bir öğretici videoyu burada bulabilirsin.
Daha fazlasını öğrenmek istersen burada öğretici videolar bulabilirsin. Videolarda kullanılan botların kaynak kodlarını da şurada bulabilirsin.
Başlangıç
Eğer sürüm belirtilmezse otomatik olarak ayarlanacaktır. Kimlik doğrulama türü belirtilmez ise de Mojang'ınki kullanılacaktır.
Papağan Örneği (bot dediklerinizi taklit eder)
const mineflayer = require('mineflayer')
const bot = mineflayer.createBot({
host: 'localhost', // sunucu IP adresi
username: 'email@example.com', // Minecraft kullanıcı adı / e-posta adresi
password: '12345678' // Minecraft şifresi, korsan sunucular için boş bırakabilirsin
// port: 25565, // sadece port 25565 olmadığında kullan
// version: false, // özellikle bir sürüm belirteceğin zaman burayı değiştirebilirsin
// auth: 'mojang' // Microsoft kullanıyorsan 'microsoft' olarak değiştirebilirsin
})
bot.on('chat', (username, message) => {
if (username === bot.username) return
bot.chat(message)
})
// Hataları ve sunucudan atılma sebeplerini konsola yansıt:
bot.on('kicked', console.log)
bot.on('error', console.log)
Botunun ne yaptığını gör
prismarine-viewer projesi sayesinde tarayıcı sekmende botunun ne yaptığını izleyebilirsin. Sadece npm install prismarine-viewer
komutunu çalıştır ve şu kodu botuna ekle:
const { mineflayer: mineflayerViewer } = require('prismarine-viewer')
bot.once('spawn', () => {
mineflayerViewer(bot, { port: 3007, firstPerson: true }) // port: yayın yapılacak port, firstPerson: true yaparsan botun gözünden, false yaparsan kuş bakışı görüntü elde edersin.
})
ve şuna benzeyen canlı bir görüntü elde edeceksin:
Daha fazla örnek
Örnek | Açıklama |
---|---|
viewer | Botunu tarayıcında izle |
pathfinder | Botunun belirli bir yere gitmesini sağla |
chest | Sandıkları, fırınları, fırlatıcıları ve büyü masalarını kullan |
digger | Blok kazabilen bir botun nasıl yapılacağını öğren |
discord | Discord ile bir mineflayer botunu bağla |
jumper | Nasıl hareket edebileceğini, zıplayabileceğini, taşıt kullanabileceğini, yakındaki canlılara saldırabileceğini öğren |
ansi | Sohbet mesajlarını bütün renkleri görecek şekilde konsoldan izle |
guard | Çevreyi etraftaki yaratıklardan koruyan bir bot yap |
multiple-from-file | Birçok hesabın bulunduğu bir dosya kullanarak o hesaplarla botlar yap |
daha da fazlası burada
Modüller
Aktif geliştirmenin bir çoğu mineflayer tarafından kullanılan küçük npm paketlerinin içinde gerçekleşiyor.
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"
Modüller
mineflayer'ın yapı taşları olarak kullanılan bazı modüller:
Modül | Açıklama |
---|---|
minecraft-protocol | Minecraft packetlerini incelemeyi sağlayan bir modül |
minecraft-data | Minecraft hakkında bir veritabanı |
prismarine-physics | Minecraft canlılarının fizik motoru |
prismarine-chunk | Chunk bilgisini tutan bir modül |
node-vec3 | Güçlü birim testleri ile 3D vektör matematiği |
prismarine-block | Minecraft bloğunu verisi ile tanımlamaya yarayan modül |
prismarine-chat | Minecraft sohbet ayrıştırıcı (mineflayer'dan alındı) |
node-yggdrasil | Mojang'ın üyelik sistemiyle etkileşime geçebilmek için bir Node.js kütüphanesi |
prismarine-world | Prismarine dünyaların ana kütüphanesi |
prismarine-windows | Minecraft pencereleri için bir yönetim kütüphanesi |
prismarine-item | Bir Minecraft eşyasını verileri ile tanımlamaya yarayan modül |
prismarine-nbt | node-minecraft-protocol için bir NBT ayrıştırıcı |
prismarine-recipe | Minecraft tarif kütüphanesi |
prismarine-biome | Bir Minecraft biyomunu verileri ile tanımlamaya yarayan modül |
prismarine-entity | Bir Minecraft canlısını tanımlamaya yarayan modül |
Hata ayıklama
Hata ayıklama çıktısı almak için DEBUG
değişkenini kullanabilirsin:
DEBUG="minecraft-protocol" node [...]
Windows:
set DEBUG=minecraft-protocol
node your_script.js
3. Parti Eklentiler
mineflayer eklenti desteği sağlar; isteyen herkes mineflayer'ın üstüne daha da üst seviye bir API ekleyen bir eklenti yazabilir.
En çok güncellenen ve en kullanışlı olan bazıları:
- pathfinder - konfigüre edilebilen tonlarca özellik ile gelişmiş A* yön bulma
- prismarine-viewer - basit tarayıcı chunk gösterici
- web-inventory - web bazlı envanter gösterici
- statemachine - daha kompleks bot eventleri için bir API
- Armor Manager - otomatik zırh düzenleyici
- Collect Block - basit ve hızlı bir blok toplama API'ı
- Dashboard - mineflayer botları için kontrol paneli
- PVP - PVP ve PVE için basit bir API
- auto-eat - otomatik yemek yeme
- Tool - otomatik eşya seçimi için üst seviye bir API
- Hawkeye - yaylarla otomatik eğim için bir API
Şunlara da göz at:
- radar - canvas ve socket.io kullanan tarayıcı bazlı bir radar arayüzü. YouTube Demo
- blockfinder - 3 boyutlu dünyada blok bulun
- scaffold - bir hedefe blok koyarak veya kırarak ulaşın YouTube Demo
- auto-auth - sohbet-bazlı bot giriş sistemi
- Bloodhound - başka bir varlığa gelen hasardan kimin ve neyin sorumlu olduğu hakkında bilgi alın
- tps - tps değerini elde edin
- panorama - dünyanın panorama fotoğraflarını çekin
Mineflayer Kullanan Projeler
- rom1504/rbot
- Darthfett/Helperbot
- vogonistic/voxel - voxel.js ile botun ne yaptığını gör
- JonnyD/Skynet - bot aktivitesini online bir API'a gönder
- MinecraftChat (son açık kaynak sürümü, AlexKvazos tarafından yapıldı) - Minecraft internet tabanlı sohbet https://minecraftchat.net/
- Cheese Bot - node-webkit ile yapılan eklenti bazlı, temiz bir arayüze sahip bir bot
- Chaoscraft - genetik algoritmalar kullanan bir Minecraft botu, videoları burada
- hexatester/minetelegram - mineflayer & telegraf üstüne kurulu Minecraft - Telegram köprüsü
- PrismarineJS/mineflayer-builder - Minecraft şemalarını hayatta kalma modunda inşa eden bir proje
- ve daha niceleri - mineflayer kullanıyor olup GitHub tarafından tespit edilen tüm projeler.
Test etme
Her şeyi test etme
Basitçe npm test
komutunu çalıştırın
Özel bir sürümü test etme
npm test -- -g <version>
komutunu çalıştırın, <version>
bir Minecraft sürümü olmalı (1.12
, 1.15.2
gibi).
Özel bir şeyi test etme
npm test -- -g <test_name>
komutunu çalıştırın, <test_name>
kısmının olduğu bölüm bir test adı olmalı (bed
, useChests
, rayTrace
gibi).