/* * This example shows the usage of the * GoalCompositeAny and GoalCompositeAll * goals for mineflayer-pathfinder * * See a more detailed explanation here: * https://github.com/PrismarineJS/mineflayer-pathfinder/blob/master/examples/tutorial/goalsExplained.md * * Made by Jovan04 06/07/2023 */ // import mineflayer & related libraries const mineflayer = require('mineflayer') const { pathfinder, Movements, goals: { GoalNear, GoalCompositeAny, GoalCompositeAll } } = require('mineflayer-pathfinder') // create mineflayer bot const bot = mineflayer.createBot({ host: 'localhost', port: 25565, version: '1.18.2', auth: 'offline', username: 'biffed' }) // load pathfinder plugin and set our bot's Movements bot.once('spawn', () => { bot.loadPlugin(pathfinder) bot.pathfinder.setMovements(new Movements(bot)) }) bot.on('chat', async (username, message) => { if (username === bot.username) return // create three separate GoalNear goals at different locations, with a range of 5; the bot needs to be within 5 blocks of a given goal to satisfy it const LapisGoal = new GoalNear(0, 1, 3, 5) const GoldGoal = new GoalNear(3, 1, -2, 5) const DiamondGoal = new GoalNear(-3, 1, -2, 5) const goalsArray = [LapisGoal, GoldGoal, DiamondGoal] if (message === 'GoalCompositeAny') { bot.chat('Traveling with GoalCompositeAny') // create a new GoalCompositeAny: see documentation for a more detailed explanation const goalAny = new GoalCompositeAny(goalsArray) // and travel to it await bot.pathfinder.goto(goalAny) bot.chat('Done traveling with GoalCompositeAny') } if (message === 'GoalCompositeAll') { bot.chat('Traveling with GoalCompositeAll') // create a new GoalCompositeAll: see documentation for a more detailed explanation const goalAll = new GoalCompositeAll(goalsArray) // and travel to it await bot.pathfinder.goto(goalAll) bot.chat('Done traveling with GoalCompositeAll') } })