Baritone and Fabritone – этот читерский мод добавляет в Майнкрафт функции умного бота читера, чтобы быстро строиться, автоматически сажать растения, добывать ресурсы, рыть протяженные тоннели, а также использовать схемы Shematic, для застройки больших территорий и возведения красивых построек. Бот программируется специальными читерскими командами. К примеру прописав команду #goto x z y, где указаны координаты вместо букв, бот сможет самостоятельно добраться до этого места, а написав #goto minecraft:diamond_block, найдёт алмазный блок.
Команды управления ботом
- #help – вывод всех команд для бота Baritone.
- #stop – остановить процессы чита.
- #pause – пауза.
- #resume – включение.
- #paused – покажет текущее состояние / действие бота.
- #goto x z y – бот пойдет по указанным координатам.
- #goto – указав блок, бот отправится на его поиски.
- #tunnel – выроет туннель по направлении взгляда, высота 2 блока, ширина 1.
- #tunnel 3 2 100 – выкопает туннель протяженностью в 100 блоков, где высота составит 3, а ширина 2 блока.
- #mine block – поиск блока по названию, к примеру #mine diamond_ore – алмазная руда.
- #legitMine – режим читерства, который включает боту xray.
- #farm – ищет семена, сажает и собирает урожай.
- #sel – аналогична команде /set из World edit. (Далее все команды действуют в выделенном участке).
- #sel pos1 – отметка первой точки (смотрите как заприватить территорию).
- #sel pos2 – 2 точка (ставится по диагонали).
- #sel clear – очистить буфер.
- #sel fill block – заполнить выделенный участок этим блоком. (Вместо block укажите название блока, пример #sel fill minecraft:cobblestone. Важно, блок должен быть в инвентаре).
- #sel wall block – построить стены в отмеченной области.
- #sel shell block – быстро построить пол или потолок.
- #sel cleararea – сломать все блоки.
- #sel replace block1 block2 – заменить блок 1 на 2. К примеру #sel replace minecraft:cobblestone minecraft:diamond_block.
- #sel undo – отменить последнее измерение.
- #avoidance (true или false) – избегать мобов.
- #allowInventory (true или false) – разрешение на использование предметов из инвентаря.
Как установить Baritone and Fabritone
Скачать Baritone and Fabritone
Для 1.18.1
Для 1.17.1
Для 1.16.5
Для 1.15.2
Для 1.14.4
Для 1.12.2
При помощи Node JS и API mineflayer
Для Minecraft существует несколько API для создания ботов, я расскажу о самой популярной из них, mineflayer.
Я, к слову, далеко не специалист в js так что могу допускать кучу ошибок. В следующей части обещаю рассмотреть интересные плагины и более сложные методы
Mineflayer
Mineflayer — высокоуровневое API написанное на Node. js.
Разработчики постоянно его обновляют, тем не менее API всё ещё не поддерживает версию 1.19, посему «подчиненного» мы будем писать на версии 1.18.2.
У mineflayer есть собственный сайт Там указан подробный список фич и модулей апи, видео-туториалы, примеры и список сторонних плагинов дополняющих оригинальный API.
Это апи мы и будем использовать для создания бота.
Собственно начинаем создавать «подчиненного»
Скачиваем Node. js с официального сайта и прописывайте npm install mineflayer в консоль дабы установить API
Далее заходим в Minecraft, создаем новый мир и открываем его для локальной сети. Получаем порт
Теперь нам нужно создать. js файл где мы собственно и будем писать нашего бота. Для меня это dtf. js
Начинаем писать бота
Для начала стоит импортировать библиотеку и создать бота. У бота есть множество параметров. Основные — host, port, username. host отвечает за IP на которое бот будет заходить(в нашем случае — «localhost« или-же »127.0.0.1» поскольку машина должна подключаться к миру в локальной сети). port отвечает за порт на который будет заходить бот, нужно указать тот что вы получили при открытии мира для сети. username отвечает за никнейм бота на сервере. В моем случае это DTFBot, вы можете указать любой.
const mineflayer = require(“mineflayer”);
const bot = mineflayer.createBot({host: ‘localhost’, port: 60179, username: ‘DTFBot’})
Уже на данном этапе вы можете запустить бота при помощи node ваш_файл. js, и он даже зайдет в мир! Правда не будет ничего делать.
Добавляем первые функции
Давайте научим нашего бота говорить хоть что-то. Например «Я родился» при появлении в мире
const mineflayer = require(“mineflayer”);
const bot = mineflayer.createBot({host: ‘localhost’, port: 60179, username: ‘DTFBot’})
bot.once(‘spawn’, function () {
bot.chat(‘Я родился’)
})
Результат:
Реакция на сообщения
Научим бота реагировать на слова начальника, а то какой-же тогда будет подчиненный?
const mineflayer = require(“mineflayer”);
const bot = mineflayer.createBot({host: ‘localhost’, port: 60179, username: ‘DTFBot’})
bot.once(‘spawn’, function () {
bot.chat(‘Я родился’)
})
bot.on(‘chat’, function (username, message) {
if(message === “Работать, огузок”){
bot.chat(‘(‘)
}
})
Учим бота защищать начальника
Как каждый самурай должен быть готов отдать жизнь за своего господина, так каждый подчиненный должен быть готов биться за своего начальника. Поскольку у mineflayer довольно гибкая система взаимодействия с энтити мы можем легко это реализовать!
Защищать нас бот будет от глупых крестьян не имеющих даже пары миллионов наличными.
const mineflayer = require(“mineflayer”);
const bot = mineflayer.createBot({host: ‘localhost’, port: 60179, username: ‘DTFBot’})
bot.once(‘spawn’, function () {
bot.chat(‘Я родился’)
setInterval(() => {
const sword = bot.inventory.items().find(item => item.name.includes(‘sword’))
if (sword) bot.equip(sword, ‘hand’)
const villagerFilter = e => e.type === ‘mob’ && e.mobType === ‘Villager’
const villager = bot.nearestEntity(villagerFilter)
if (!villager) return;
const pos = villager.position;
bot.lookAt(pos);
bot.attack(villager);
}, 1000);
})
bot.on(‘chat’, function (username, message) {
if(message === “Работать, огузок” && username === ‘Grammf’){
bot.chat(‘(‘)
}
})
Теперь после появления в мире каждую секунду бот будет пытаться атаковать ближайшего крестьянина вооружившись мечём если таковой есть в инвентаре. Сначала бот ищет в инвентаре Item в названии которого есть «меч», а затем берет его в руку при помощи bot. equip. Вооружившись мечем бот ищет ближайшего крестьянина по фильтру villagerFilter и атакует его если видит.
Учим подчиненного ходить за начальником
А если начальник решит пройтись? Что бот будет делать? Да ничего, просто стоять на месте. Исправляем!
Тут нам понадобится плагин mineflayer-pathfinder что добавляет возможность пазфайндинга в бота
Устанавливаем его при помощи npm install mineflayer-pathfinder и начинаем работу.
Импортируем пазфайндер и основные его цели при помощи
const {pathfinder, Movements, goals: {GoalNear, GoalBlock, GoalFollow}} = require(‘mineflayer-pathfinder’);
и загружаем его после объявления бота при помощи
bot.loadPlugin(pathfinder);
Так-же нам понадобится minecraft-data
const mcData = require(‘minecraft-data’)(bot.version)
Теперь нам остается только добавить комманды «За мной«, «Ко мне» и »Остановись».
const mineflayer = require(“mineflayer”);
const {pathfinder, Movements, goals: {GoalNear, GoalBlock, GoalFollow}} = require(‘mineflayer-pathfinder’);
const bot = mineflayer.createBot({host: ‘localhost’, port: 60179, username: ‘DTFBot’})
bot.loadPlugin(pathfinder);
bot.once(‘spawn’, function () {
const mcData = require(‘minecraft-data’)(bot.version)
const defaultMove = new Movements(bot, mcData)
bot.chat(‘Я родился’)
setInterval(() => {
const sword = bot.inventory.items().find(item => item.name.includes(‘sword’))
if (sword) bot.equip(sword, ‘hand’)
const villagerFilter = e => e.type === ‘mob’ && e.mobType === ‘Villager’
const villager = bot.nearestEntity(villagerFilter)
if (!villager) return;
const pos = villager.position;
bot.lookAt(pos);
bot.attack(villager);
}, 1000);
})
bot.on(‘chat’, function (username, message) {
if(username !== “Grammf”) return;
if(message === “Работать, огузок”){
bot.chat(‘(‘)
}
if(message === “За мной”){
const player = bot.players[username]
bot.pathfinder.setGoal(new GoalFollow(player.entity, 1), true)
}
if(message === “Ко мне”){
const player = bot.players[username]
bot.pathfinder.setGoal(new GoalNear(player.entity.position.x, player.entity.position.y, player.entity.position.z, 1))
}
if(message === “Остановись”){
bot.pathfinder.setGoal(null, 1)
}
})
После получения комманды бот получает игрока написавшего комманду по его никнейму и создает Goal на его основе. В данном случае это GoalFollow которая дает боту комманду следовать за определенным энтити и GoalNear дающая боту комманду подойти недалеко от указанных координат. Что-бы остановиться мы просто обнуляем Goal
Наблюдаем за работником
Никакой свободы сотрудникам, будем за ними следить!
Для этого нам понадобится prismarine-viewer
По привычной схеме устанавливаем prismarine-viewer и импортируем его в бота
const mineflayerViewer = require(‘prismarine-viewer’).mineflayer
Затем добавляем запуск вьювера на порте 3000 в код
const mineflayer = require(“mineflayer”);
const {pathfinder, Movements, goals: {GoalNear, GoalBlock, GoalFollow}} = require(‘mineflayer-pathfinder’);
const bot = mineflayer.createBot({host: ‘localhost’, port: 60179, username: ‘DTFBot’})
const mineflayerViewer = require(‘prismarine-viewer’).mineflayer
bot.loadPlugin(pathfinder);
bot.once(‘spawn’, function () {
mineflayerViewer(bot, { firstPerson: true, port: 3000 })
const mcData = require(‘minecraft-data’)(bot.version)
const defaultMove = new Movements(bot, mcData)
bot.chat(‘Я родился’)
setInterval(() => {
const sword = bot.inventory.items().find(item => item.name.includes(‘sword’))
if (sword) bot.equip(sword, ‘hand’)
const villagerFilter = e => e.type === ‘mob’ && e.mobType === ‘Villager’
const villager = bot.nearestEntity(villagerFilter)
if (!villager) return;
const pos = villager.position;
bot.lookAt(pos);
bot.attack(villager);
}, 1000);
})
bot.on(‘chat’, function (username, message) {
if(username !== “Grammf”) return;
if(message === “Работать, огузок”){
bot.chat(‘(‘)
}
if(message === “За мной”){
const player = bot.players[username]
bot.pathfinder.setGoal(new GoalFollow(player.entity, 1), true)
}
if(message === “Ко мне”){
const player = bot.players[username]
bot.pathfinder.setGoal(new GoalNear(player.entity.position.x, player.entity.position.y, player.entity.position.z, 1))
}
if(message === “Остановись”){
bot.pathfinder.setGoal(null, 1)
}
})
Готово! Веб сервер запускается и достаточно перейти в браузере на localhost:3000 как вам откроется вид от первого лица бота
А если начальник покушать захочет?
У майнфлеера есть и довольно специфичные методы, давайте их используем!
if (message === “Порыбачь!”) {
const rod = bot.inventory.items().find(item => item.name.includes(‘rod’))
if (rod) bot.equip(rod, ‘hand’)
bot.fish()
}
Простой код что заставляет бота взять в руки удочку и воспользоваться ею. Как только бот увидит что рыба клюет он её подцепит.
Плагины
Для mineflayer есть множество интересных плагинов. Лично я рекомендую
- GUI
- Projectile
- Tool
- PVP
- CollectBlock
- BloodHound
Они наиболее хорошо расширяют возможности API
Обязательно посмотрите видео-туториалы по mineflayer
Удачи вам в создании эффективных сотрудников
Время на прочтение
4 мин
Количество просмотров 12K
Почти каждый человек, играющий в Minecraft, мечтал, чтобы ресурсы в игре были бесконечными или за него их добывал кто-то другой. С помощью библиотеки Mineflayer и Node.js , можно создать бота, который будет выполнять всю работу за вас.
Mineflayer
Mineflayer — высокоуровневое API написанное на Node. js. Официальная документация.
Часть 1 (Установка и настройка)
Скачиваем Node.js с официального сайта и прописывайте npm install mineflayer в консоль, чтобы установить API .
Далее необходимо создать mybot.js файл, где и будет храниться код для нашего бота.
Редактировать данный файл можно в любой среде разработке, но я рекомендую воспользоваться WebStorm.
Заходим в Minecraft , создаём новый мир и открываем его для сети. В чате появилось сообщение с нашим портом. Запоминаем его, так как он нам пригодится.
Часть 2 (Подключение бота к серверу)
Первым делом необходимо подключить библиотеку.
const mineflayer = require("mineflayer");
У бота существует множество параметров. К примеру: host, port, username, password,version и auth. Мы будет пользоваться: host, port, username и version. host, отвечает за IP, на который будет заходить бот. В нашем случае это localhost. Параметр port, мы с вами узнали выше. Каждый раз, когда заходите на сервер port меняется. Username отвечает за то, какой никнейм будет у бота. В version, поставим 1.18.2. При установленном значении false , версия будет выбрана автоматически.
const mineflayer = require("mineflayer")
const bot = mineflayer.createBot({
host: "localhost",
port: "4201",
version: "1.18.2",
username: "MyBot" });
Для того , чтобы бот зашёл на сервер в Терминале пишем команду: node mybot.js.
Часть 3 (Первые функции)
Научим нашего бота говорить. При появлении в мире, в чате появится сообщение : «Привет мир».
bot.once('spawn', function () {
bot.chat('Привет мир!');
});
При вызове ивента ‘spawn’, вызывается метод chat и бот выводит сообщение в чат. Список ивентов и методов.
Часть 4 (Общение с ботом в чате)
Научим нашего бота отвечать на наши сообщения в чате.
bot.on('chat', function Hi (username,message) {
if(username === "MyBot") return;
if (message === "Ты бот?" && username === "Sergey") {
setTimeout(() => bot.chat(username + " , нет я не бот"), 5000);
} else {
if(message !== "Ты бот?") return;
setTimeout(() => bot.chat(username + " , я тебя не знаю"), 5000);
}});
В данном случае используется ивент, но уже с двумя параметрами: username и message. Когда мы пишем в чат «Ты бот?» , бот проверяет сообщение и выводит текст «username (ник игрока) , я не бот». Отвечать бот на сообщения будет каждые 5 сек. Сделать это можно с помощью планирования вызова setTimeout().
Часть 5 (Следим за сервером от лица бота)
Чтобы следить за сервером от лица нам поможет библиотека: prismarine-viewer.
Устанавливаем её const mineflayerViewer = require('prismarine-viewer').mineflayer
Далее добавляем запуск Viewer на порте 3007. В дальнейшем мы будем подключаться именно через этот порт.
bot.once('spawn',() =>{
mineflayerViewer(bot,{
port:3007,
firstPerson:true,
viewDistance: "25"})
})
После того , как бот подключится к серверу, мы переходим в браузер и пишем localhost:3007. Готово!
Часть 6 (Взаимодействие с кроватью)
bot.on('chat',(username,message)=>{
if(username === bot.username) return
switch (message){
case 'Спать':
goToSleep()
break
case 'Вставай':
wakeUp()
break
}
});
bot.on('sleep',()=>{
bot.chat('Спокойной ночи')});
bot.on('wake',()=>{
bot.chat('Доброе утро')});
async function goToSleep(){
const bed = bot.findBlock({
matching: block => bot.isABed(block)})
if (bed) {
try {
await bot.sleep(bed)
bot.chat("Я сплю") } catch (err) {
bot.chat(`Я не могу уснуть: ${err.message}`) }
} else {
bot.chat('По близости нет кровати') } }
async function wakeUp() {
try {
await bot.wake() } catch (err) {
bot.chat(`Я не могу проснуться: ${err.message}`)
}}
По команде в чате «Спать», будет вызываться метод goToSleep(), бот ляжет на кровать и выведет в чат «Спокойной ночи». Если кровати не будет рядом, выводится сообщение «Поблизости нет кровати», а если рядом будут враждебные мобы , то «Я не могу уснуть: (причина)».
По команде в чате «Вставай», будет вызываться метод wakeUp и бот соответственно встанет с кровати и в чат выводится сообщение «Доброе утро».
Часть 7 (Выход бота с сервера)
Реализовать выход бота с сервера довольно просто. В этом нам поможет метод quit().
Приписываем к коду выше ещё один case и команду ‘Выйди’. После того, как мы напишем в чат данное слово, бот сразу выйдет с сервера.
case 'Выйди':
bot.quit()
break
Часть 8 (Забираем предметы у бота из инвентаря)
По команде в чате «Drop», бот будет скидывать предметы, находящиеся в инвентаре. Если скидывать нечего, то в терминал выводится сообщение «У меня пусто»
bot.on('chat',function (username,message){
if(username === "MyBot") return;
if (message === "Drop" && username === "Sergey"){
function tossNext(){
if(bot.inventory.items().length === 0) {
console.log("У меня пусто")
} else {
const item = bot.inventory.items()[0]
bot.tossStack(item,tossNext)}
}
tossNext()}
});
Часть 9 (Autoclicker)
Для начала, подключаем библиотеку : npm install –save mineflayer-autoclicker. Используем уже известный нами ивент ‘chat’. По команде «Start» запустится метод bot.autoclicker.start(), а по команде «Stop» bot.autoclicker.stop().
bot.on('spawn', function (){
bot.loadPlugin(require("mineflayer-autoclicker"))
})
bot.on('chat', function (usrername, message){
if(message === "Start"){
bot.autoclicker.start()}
if(message === "Stop"){
bot.autoclicker.stop()}});
Cторонние плагины:
Mineflayer поддерживает сторонние плагины. С помощью них Вы можете добавить новые методы API:
-
pathfinder – Поиск пути с помощью координат
-
prismarine-viewer – Простой web клиент для отслеживания активного чанка
-
web-inventory – Веб клиент для взаимодействия с инвентарем
-
statemachine – API с более сложной структурой для ботов
-
Armor Manager – Автоматическое взаимодействие с экипировкой
-
Collect Block – Простой способ для подбора блоков
-
Dashboard – Панель управления для бота
Baritone and Fabritone – это читерский мод на умного бота для Майнкрафт, который может выполнять различные задачи вместо игрока на сервере или в одиночной игре. Бот может автоматически добывать ресурсы, разводить культуры, копать тоннели, очищать местность, а также строить постройки при помощи Shematic-файла. Всё управление ботом происходит при помощи команд в чате, где вы задаёте нужные параметры и отдыхаете, пока он автоматически будет выполнять необходимые задачи в реальном времени. Причём он не встанет тупо где-то или упрётся в блок, а будет выбирать самый оптимальный маршрут и обходить всевозможные опасности.
Как я уже сказал, бот управляется командами в из чата. Их перечень представлен ниже.
Список команд
#help – показать полную справку по всем командам и настройку бота
#stop – остановить работу мода
#pause – поставить на паузу выполнение мода
#resume – возобновить работу мода
#paused – показать, в каком состоянии сейчас работа (пауза, остановка или работа)
Передвижение:
#goto x z y – указать боту координаты и он сам пойдет туда.
#goto block – указать блок, на который необходимо переместиться, например
#goto minecraft:diamond_block
. Перемещение будет на ближайший указанный блок.
Тоннель:
#tunnel – начнет рыть туннель 2х1 в направлении взгляда
#tunnel 3 2 50 – начнет копать тоннель высотой 3 блока, шириной 2 и дальностью 50 блоков.
Добыча блоков:
#mine block – начнет искать и добывать указанный блок, например
#mine diamond_ore
или
#mine minecraft:diamond_ore
#legitMine – переключение режима подобно Xray.
Фермерство:
#farm – начнет добывать ближайшие растения с целью получить семена и засадит их обратно, настроек не имеет.
Строительство:
#sel – команда работает по принципу World edit, сначала вы должны выделить нужную область указав первую и вторую позиции при помощи команды:
#sel pos1 а после в другом месте #sel pos2 вы увидите выделение, с ним можно работать.
#sel clear – очистить выделение
#sel fill block – заложить выделенную область блоком, например #sel fill minecraft:cobblestone, блок должен быть в инвентаре, мешающие блоки будут сломаны.
#sel wall block – построить стены у выделенной области с пустотой внутри.
#sel shell block – тоже самое что и стены, только пол и потолок.
#sel cleararea – сломать все блоки в выделенной области
#sel replace block1 block2 – заменить блок 1 на блок 2, пример #sel replace minecraft:cobblestone minecraft:diamond_block
#sel undo – отменить последнее измерение
#avoidance (true или false) – режим избегания встречи с мобами.
#allowInventory (true или false) – разрешить использование предметов из инвентаря.
Полный перечень команд вы найдёте тут:
Перейти
Скриншоты
Как установить Baritone + Fabritone
- Скачай и установи Minecraft Forge или Fabric
- Скачай мод
- Помести файл в .minecraft/mods
- Можно играть!
Скачать бота Baritone + Fabritone
Для 1.19.4 Fabric
Для 1.19.3 Forge
Для 1.19.3 Fabric
Для 1.18.2 Forge
Для 1.18.2 Fabric
Для 1.18.1 Forge
Для 1.18.1 Fabric
Для 1.17.1 Forge
Для 1.17.1 Fabric
Для 1.16.5 Forge
Для 1.16.5 Fabric
Для 1.15.2 Forge
Для 1.15.2 Fabric
Для 1.14.4 Fabric
Для 1.12.2 Forge
Понравился материал? Поделись с друзьями!
Как заспавнить бота в майнкрафт
Для того чтобы заспавнить бота в Minecraft, вы можете использовать модификации, такие как Botania, Botania Unleashed, MineColony и т. д.
Допустим, установим мод Botania. Для этого необходимо следовать инструкциям:
1. Установите удобный вам лаунчер для Minecraft, который позволяет использовать модификации.
2. Скачать мод Botania. Обычно файлы модификаций распространяются в формате. jar, убедитесь, что формат совместим с вашим лаунчером.
3. Перейдите в папку с игрой Minecraft и найдите папку mods.
4. Скопируйте файл мода Botania в папку mods.
5. Запустите игру Minecraft.
6. Создайте новый мир.
7. Переключитесь в режим выживания или творчества.
8. Найдите способ создать и привязать бота к вашему персонажу.
Советы:
— Перед установкой модификации делайте резервную копию игровых файлов.
— Обратите внимание на версию игры и мода, используйте совместимые версии.
— Вместо модов можно использовать готовые ресурс-паки с ботами.