feat(mover): add close(er) command to follow / come closer

This commit is contained in:
jay 2021-01-05 08:11:11 +05:00
parent 8e719d5ccf
commit 69d0f5830d
2 changed files with 14 additions and 4 deletions

View File

@ -196,7 +196,14 @@ function command(username, message) {
subcommand("go follow " + message_parts.slice(2).join(" ")) subcommand("go follow " + message_parts.slice(2).join(" "))
break; break;
case "come": case "come":
subcommand("go follow once") switch (message_parts[1]) {
case "close":
case "closer":
subcommand("go follow close")
break
default:
subcommand("go follow once")
}
break; break;
case "move": case "move":
case "go": case "go":
@ -252,11 +259,14 @@ function command(username, message) {
cfg.plugins.mover.follow(bot.nearestEntity()) cfg.plugins.mover.follow(bot.nearestEntity())
break break
case 1: case 1:
let dist = 3
switch (message_parts2[0]) { switch (message_parts2[0]) {
case "close":
dist = 1
case "me": case "me":
case "once": case "once":
if (player) { if (player) {
cfg.plugins.mover.follow(player, message_parts2[0] !== "once") cfg.plugins.mover.follow(player, message_parts2[0] === "me", dist)
} else { } else {
cfg.quiet || bot.chat("can't see you") cfg.quiet || bot.chat("can't see you")
} }

View File

@ -37,7 +37,7 @@ function moveNear(pos, distance = 3) {
bot.pathfinder.setGoal(new GoalNear(pos.x, pos.y, pos.z, distance)) bot.pathfinder.setGoal(new GoalNear(pos.x, pos.y, pos.z, distance))
} }
function follow(entity, dynamic = true) { function follow(entity, dynamic = true, distance = 3) {
console.assert(entity) console.assert(entity)
const { GoalFollow } = require('mineflayer-pathfinder').goals const { GoalFollow } = require('mineflayer-pathfinder').goals
@ -53,7 +53,7 @@ function follow(entity, dynamic = true) {
// console.log(entity) // console.log(entity)
bot.pathfinder.setMovements(movements.defaultMove) bot.pathfinder.setMovements(movements.defaultMove)
bot.pathfinder.setGoal(new GoalFollow(entity, 3), dynamic) bot.pathfinder.setGoal(new GoalFollow(entity, distance), dynamic)
} }
function hit(blockOrEntity) { function hit(blockOrEntity) {