const mineflayer = require('mineflayer')
const { pathfinder, Movements, goals: { GoalNear } } = require('mineflayer-pathfinder')
const pvp = require('mineflayer-pvp').plugin
const bot = mineflayer.createBot({
host: "localhost",
port: "8013",
username: 'TestBotMinecraft' })
bot.loadPlugin(pvp)
bot.loadPlugin(pathfinder)
let target = null
bot.once('spawn', function () {
bot.chat('/login 12345TESTbot')
setInterval(() => {
entity = bot.nearestEntity()
if (entity && entity.type === 'mob') {
const dist = bot.entity.position.distanceTo(entity.position)
if (dist > 3.0) { // если расстояние больше 3 блоков
target = entity
const mcData = require('minecraft-data')(bot.version)
const movements = new Movements(bot, mcData)
movements.scafoldingBlocks = []
bot.pathfinder.setMovements(movements)
bot.pathfinder.setGoal(new GoalNear(entity.position.x, entity.position.y, entity.position.z, 1))
} else if (dist < 3.0) { // если расстояние меньше 3 блоков
target = null
bot.attack(entity, true)
}
} else {
target = null
bot.chat('no nearby entities')
}
})
})
Creeper Mutant MutantУченик (142)
1 год назад
Можно пожайлуста сделать чтобы бот переключался между оружием - если моб/игрок на расстоянии больше 5 блоков то бот берёт лук/арбалет и стреляет в моба/игрока, если 5 блоков или меньши то берёт меч и нападает (как в прошлом коде) и чтобы бот следил за собой - если шкала еды 3 или меньше то бот начинает есть (если есть еда), если здоровье 10 или меньше то он пьёт зелье исцеления/регенерации или ест золотое яблоко/зачарованное золотое яблоко (если есть) и если у него 5 здоровья или меньше то он берёт в левую руку тотем бессмертия (если есть) и ещё чтобы бот умел закрыватся щитом
Код бота: