Добрый день, леди и джентльмены. В данной статье я вас научу делать ботом на майнкрафт используя библиотеку mineflayer.
Мы с вами напишем бота который сможет - бегать за вами, кушать если слишком мало еды, узнавать количество хп и еще пару вещей.
Мы с вами напишем бота который сможет - бегать за вами, кушать если слишком мало еды, узнавать количество хп и еще пару вещей.
Сначала качаем python последней версии - *тык*
ОБЯЗАТЕЛЬНО НАЖАТЬ ЭТУ ГАЛКУ, БЕЗ НЕЕ БУДЕТ МОРОКА С УСТАНОВКОЙ БИБЛИОТЕК Установка окончена, переходим к следующему пункту.
ОБЯЗАТЕЛЬНО НАЖАТЬ ЭТУ ГАЛКУ, БЕЗ НЕЕ БУДЕТ МОРОКА С УСТАНОВКОЙ БИБЛИОТЕК
После установки python, нам нужно импортировать javascript в него. Для этого в консоль пишем:
pip install javascript
У меня она уже установлена, поэтому мне пишет что такая библиотека уже есть. У вас же будут немного другие надписи.
pip install javascript
У меня она уже установлена, поэтому мне пишет что такая библиотека уже есть. У вас же будут немного другие надписи.
Есть 3 самых популярных программы для этого - PyCharm, Sublime Text, Visual Studio Code. В этом гайде я буду использовать PyCharm, вы же можете использовать то, что вам по душе
Переходим к установке PyCharm:
1. Заходим на официальный сайт - *тык*
2. Жмем кнопку скачать.
3. Листаем вниз и качаем [tooltip=168]community[/tooltip] edition.
4. Открываем прогу и переходим к следующему пункту.
Переходим к установке PyCharm:
1. Заходим на официальный сайт - *тык*
2. Жмем кнопку скачать.
Создаем проект (думаю не совсем тупенькие, там две кнопочки нажать).
Начинаем писать бота.
Из javascript импортируем require и запрашиваем mineflayer
Дальше создаем бота и составляем словарь с данными сервера и ником бота.
Создаем бесконечный цикл чтобы бот был на сервере всегда.
ура бот на сервере
Есть методы и ивенты
Ивенты - это то что происходит в игре - дождь, сообщение в чате и т.д.
Метод - то что делает бот, например метод chat() пишет сообщение в чат.
В этом примере мы заставляем бота повторять сообщения (эхо-бот, [tooltip=71]база[/tooltip] ботов на любой платформе)
Все функции и ивенты можно найти тут - *тык*
Тут мы уже добавляем pathfinder и устанавливаем цель
Добавляем проверку еды, если еда меньше 19, тогда - бот кушает. (Еда должна быть в руке) Можно округлить через round. (Чтоб в чате не писало 19.1245561 и т.д.)
Начинаем писать бота.
Из javascript импортируем require и запрашиваем mineflayer
Дальше создаем бота и составляем словарь с данными сервера и ником бота.
Создаем бесконечный цикл чтобы бот был на сервере всегда.
Есть методы и ивенты
Ивенты - это то что происходит в игре - дождь, сообщение в чате и т.д.
Метод - то что делает бот, например метод chat() пишет сообщение в чат.
В этом примере мы заставляем бота повторять сообщения (эхо-бот, [tooltip=71]база[/tooltip] ботов на любой платформе)
Все функции и ивенты можно найти тут - *тык*
Бот повторяет сообщение указывая наше имя.
Тут мы уже добавляем pathfinder и устанавливаем цель
Теперь если мы напишем в чат: за мной, бот будет вас преследовать.
Добавляем проверку еды, если еда меньше 19, тогда - бот кушает. (Еда должна быть в руке) Можно округлить через round. (Чтоб в чате не писало 19.1245561 и т.д.)
Бот кушает
Конец статьи, не забываем про документацию на гитхаб, подумайте об этом прежде чем писать вопросы. Люблю вас)
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