Mineflayer пример кода. Бот если находится в воде то пытается из нее выйти
Вот пример кода для создания бота с использованием библиотеки Mineflayer, который будет пытаться выйти из воды, если он в ней находится. Этот код проверяет, находится ли бот в воде, и если да, то пытается переместиться на блоки, которые находятся на поверхности.
const mineflayer = require('mineflayer');
const bot = mineflayer.createBot({
host: 'localhost', // IP сервера
port: 25565, // Порт сервера
username: 'Bot' // Имя бота
});
bot.on('spawn', () => {
console.log('Бот появился в мире!');
setInterval(checkWater, 1000); // Проверяем каждую секунду
});
function checkWater() {
const entity = bot.entity;
const blockBelow = bot.blockAt(entity.position.offset(0, -1, 0));
// Проверяем, находится ли бот в воде
if (blockBelow && blockBelow.name === 'water') {
console.log('Бот в воде, пытается выйти...');
moveToDryLand();
}
}
function moveToDryLand() {
const entity = bot.entity;
// Пытаемся переместиться на блоки вокруг
const directions = [
{ x: 1, z: 0 }, // Вперед
{ x: -1, z: 0 }, // Назад
{ x: 0, z: 1 }, // Вправо
{ x: 0, z: -1 } // Влево
];
for (const dir of directions) {
const targetBlock = bot.blockAt(entity.position.offset(dir.x, 0, dir.z));
if (targetBlock && targetBlock.name !== 'water') {
bot.moveTo(targetBlock.position).catch(err => console.log(err));
break; // Выходим из цикла после первой попытки
}
}
}
bot.on('error', err => console.log('Ошибка:', err));
bot.on('end', () => console.log('Бот отключен.'));
bot.js
.node bot.js
.Этот код является базовым примером и может быть доработан для улучшения логики движения или добавления других функций.