LookAtMySuitBot/js/node_modules/mineflayer-pathfinder/examples/movements.js

57 lines
1.8 KiB
JavaScript

/*
* This example demonstrates how easy it is to change the default movement
*
* Below are a few options you can edit in the Movement Class
* but remember to check out the API documentation to find even more!
*
* This bot also follows a player when called called out to it.
*/
const mineflayer = require('mineflayer')
const { pathfinder, Movements } = require('mineflayer-pathfinder')
const { GoalNear } = require('mineflayer-pathfinder').goals
const bot = mineflayer.createBot({
host: process.argv[2],
port: parseInt(process.argv[3]),
username: process.argv[4] ? process.argv[4] : 'movementsbot',
password: process.argv[5]
})
bot.loadPlugin(pathfinder)
bot.once('spawn', () => {
/*
* pathfinder comes with default moves preinitialized (a instance of the movement class)
* the moves come with default logic, like how much it can fall
* what blocks are used to scaffold, and what blocks to avoid.
*/
// To get started create a instance of the Movements class
const customMoves = new Movements(bot)
// To make changes to the behaviour, customize the properties of the instance
customMoves.canDig = false
customMoves.allow1by1towers = false
customMoves.scafoldingBlocks.push(bot.registry.itemsByName.stone.id)
// Thing to note scaffoldingBlocks are an array while other namespaces are usually sets
customMoves.blocksToAvoid.add(bot.registry.blocksByName.carrot.id)
// To initialize the new movements use the .setMovements method.
bot.pathfinder.setMovements(customMoves)
bot.on('chat', function (username, message) {
if (username === bot.username) return
if (message === 'come') {
const target = bot.players[username]?.entity
if (!target) {
bot.chat('I don\'t see you !')
return
}
const p = target.position
bot.pathfinder.setGoal(new GoalNear(p.x, p.y, p.z, 1))
}
})
})