Добрый день, леди и джентльмены. В данной статье я вас научу делать ботом на майнкрафт используя библиотеку mineflayer. Мы с вами напишем бота который сможет - бегать за вами, кушать если слишком мало еды, узнавать количество хп и еще пару вещей. 1. Подготовка 1. Python Сначала качаем python последней версии - *тык* Фото ОБЯЗАТЕЛЬНО НАЖАТЬ ЭТУ ГАЛКУ, БЕЗ НЕЕ БУДЕТ МОРОКА С УСТАНОВКОЙ БИБЛИОТЕК Установка окончена, переходим к следующему пункту. 2. Библиотеки После установки python, нам нужно импортировать javascript в него. Для этого в консоль пишем: pip install javascript Фото У меня она уже установлена, поэтому мне пишет что такая библиотека уже есть. У вас же будут немного другие надписи. 3. Выбираем программу для написания кода Есть 3 самых популярных программы для этого - PyCharm, Sublime Text, Visual Studio Code. В этом гайде я буду использовать PyCharm, вы же можете использовать то, что вам по душе Переходим к установке PyCharm: 1. Заходим на официальный сайт - *тык* 2. Жмем кнопку скачать. Фото 3. Листаем вниз и качаем community edition. Фото 4. Открываем прогу и переходим к следующему пункту. 2. Пишем бота Создаем проект (думаю не совсем тупенькие, там две кнопочки нажать). Начинаем писать бота. 1. Подключение к серверу Из javascript импортируем require и запрашиваем mineflayer Дальше создаем бота и составляем словарь с данными сервера и ником бота. Создаем бесконечный цикл чтобы бот был на сервере всегда. Фото ура бот на сервере 2. Знакомим бота с чатом Есть методы и ивенты Ивенты - это то что происходит в игре - дождь, сообщение в чате и т.д. Метод - то что делает бот, например метод chat() пишет сообщение в чат. В этом примере мы заставляем бота повторять сообщения (эхо-бот, база ботов на любой платформе) Все функции и ивенты можно найти тут - *тык* Фото Бот повторяет сообщение указывая наше имя. 3. Учим бота ходить (pathfinder) Тут мы уже добавляем pathfinder и устанавливаем цель Фото Теперь если мы напишем в чат: за мной, бот будет вас преследовать. 4. Учим бота проверять голод и хп Добавляем проверку еды, если еда меньше 19, тогда - бот кушает. (Еда должна быть в руке) Можно округлить через round. (Чтоб в чате не писало 19.1245561 и т.д.) Фото Бот кушает 3. Конец Конец статьи, не забываем про документацию на гитхаб, подумайте об этом прежде чем писать вопросы. Люблю вас) 4. Сурсы from javascript import require, On, Once, AsyncTask, once, off mineflayer = require('mineflayer') pathfinder = require('mineflayer-pathfinder') GoalFollow = pathfinder.goals.GoalFollow bot = mineflayer.createBot({ 'host':'ASFafasfefs.aternos.me', 'port':'27071', 'username':'Bot', 'version':'1.19.4' }) bot.loadPlugin(pathfinder.pathfinder) mcData = require('minecraft-data')(bot.version) movements = pathfinder.Movements(bot, mcData) @On(bot, 'chat') def msgHandler(this, user, message, *args): if user !='Bot': if 'за мной' in message: player = bot.players[user] target = player.entity bot.pathfinder.setMovements(movements) goal = GoalFollow(target, 1) bot.pathfinder.setGoal(goal, True) bot.chat(f'Иду за тобой, {user}') @On(bot, 'chat') def edaCheck(this, user, message, *args): if user != 'Bot': if 'еда' in message: if bot.food == 20: bot.chat(f'Моя еда - {bot.food}') if bot.food <= 19: bot.chat(f'Еда - {bot.food}, начинаю жрать') bot.activateItem() while True: pass Python from javascript import require, On, Once, AsyncTask, once, off mineflayer = require('mineflayer') pathfinder = require('mineflayer-pathfinder') GoalFollow = pathfinder.goals.GoalFollow bot = mineflayer.createBot({ 'host':'ASFafasfefs.aternos.me', 'port':'27071', 'username':'Bot', 'version':'1.19.4' }) bot.loadPlugin(pathfinder.pathfinder) mcData = require('minecraft-data')(bot.version) movements = pathfinder.Movements(bot, mcData) @On(bot, 'chat') def msgHandler(this, user, message, *args): if user !='Bot': if 'за мной' in message: player = bot.players[user] target = player.entity bot.pathfinder.setMovements(movements) goal = GoalFollow(target, 1) bot.pathfinder.setGoal(goal, True) bot.chat(f'Иду за тобой, {user}') @On(bot, 'chat') def edaCheck(this, user, message, *args): if user != 'Bot': if 'еда' in message: if bot.food == 20: bot.chat(f'Моя еда - {bot.food}') if bot.food <= 19: bot.chat(f'Еда - {bot.food}, начинаю жрать') bot.activateItem() while True: pass
VelZaBuR, обычно таких ботов используют для прогрузки чанка,и для прочих моментов,чтобы фармить валюту сервера )