diff --git a/lib/plugins/command.js b/lib/plugins/command.js index f04bb41..bfaba92 100644 --- a/lib/plugins/command.js +++ b/lib/plugins/command.js @@ -219,100 +219,7 @@ function command(username, message) { break; case "move": case "go": - // TODO move most of the subcommands into mover.js? - const message_parts2 = message_parts.slice(2) - switch (message_parts[1]) { - case "init": - cfg.plugins.mover.initMoves() - break - case "near": - // message_parts2 = message_parts.slice(2) - switch (message_parts2.length) { - case 0: - cfg.plugins.mover.moveNear(bot.nearestEntity().position) - break - case 1: - switch (message_parts2[0]) { - case "me": - if (player) { - cfg.plugins.mover.moveNear(player.position) - } else { - cfg.quiet || bot.chat("can't see you") - } - break; - - default: - const aPlayer = bot.players[message_parts[2]] ? bot.players[message_parts[2]].entity : null - if (aPlayer) { - cfg.plugins.mover.moveNear(aPlayer.position) - } else { - cfg.quiet || bot.chat(`can't see ${message_parts[2]}`) - } - break; - } - break - case 2: - //TODO this isn't near - cfg.plugins.mover.moveXZ(message_parts2) - break - case 3: - //TODO more checks - cfg.plugins.mover.moveNear(message_parts2) - break - default: - break - } - break - - case "follow": - // message_parts2 = message_parts.slice(2) - switch (message_parts2.length) { - case 0: - cfg.plugins.mover.follow(bot.nearestEntity()) - break - case 1: - let dist = 3 - switch (message_parts2[0]) { - case "close": - dist = 1 - case "me": - case "once": - if (player) { - cfg.plugins.mover.follow(player, message_parts2[0] === "me", dist) - } else { - cfg.quiet || bot.chat("can't see you") - } - break; - - default: - const aPlayer = bot.players[message_parts[2]] ? bot.players[message_parts[2]].entity : null - if (aPlayer) { - cfg.plugins.mover.follow(aPlayer) - } else { - cfg.quiet || bot.chat(`can't see ${message_parts[2]}`) - } - break; - } - break - // case 2: - // bot.lookAt({}) goalxz? - // break - // case 3: - //TODO more checks - // cfg.plugins.mover.moveNear(message_parts2) - // break - default: - todo() - break - } - break - case "stop": - cfg.plugins.mover.stop() - break - default: - return todo() - break; - } + cfg.plugins.mover.command(message_parts.slice(1), player) break; case "attack": diff --git a/lib/plugins/mover.js b/lib/plugins/mover.js index d131b79..0e7d76b 100644 --- a/lib/plugins/mover.js +++ b/lib/plugins/mover.js @@ -108,6 +108,101 @@ function stop() { bot.stopDigging() } +function command(message_parts, player) { + const message_parts2 = message_parts.slice(1) + switch (message_parts[0]) { + case "init": + initMoves() + break + case "near": + switch (message_parts2.length) { + case 0: + moveNear(bot.nearestEntity().position) + break + case 1: + switch (message_parts2[0]) { + case "me": + if (player) { + moveNear(player.position) + } else { + cfg.quiet || bot.chat("can't see you") + } + break; + + default: + const aPlayer = bot.players[message_parts2[0]] ? bot.players[message_parts2[0]].entity : null + if (aPlayer) { + moveNear(aPlayer.position) + } else { + cfg.quiet || bot.chat(`can't see ${message_parts2[0]}`) + } + break; + } + break + case 2: + //TODO this isn't near + moveXZ(message_parts2) + break + case 3: + //TODO more checks + moveNear(message_parts2) + break + default: + break + } + break + + case "follow": + // message_parts2 = message_parts.slice(2) + switch (message_parts2.length) { + case 0: + follow(bot.nearestEntity()) + break + case 1: + let dist = 3 + switch (message_parts2[0]) { + case "close": + dist = 1 + case "me": + case "once": + if (player) { + follow(player, message_parts2[0] === "me", dist) + } else { + cfg.quiet || bot.chat("can't see you") + } + break; + + default: + const aPlayer = bot.players[message_parts2[0]] ? bot.players[message_parts2[0]].entity : null + if (aPlayer) { + follow(aPlayer) + } else { + cfg.quiet || bot.chat(`can't see ${message_parts2[0]}`) + } + break; + } + break + // case 2: + // bot.lookAt({}) goalxz? + // break + // case 3: + //TODO more checks + // moveNear(message_parts2) + // break + default: + cfg.quiet || bot.chat("unknown or bad command") + break + } + break + case "stop": + stop() + break + default: + return cfg.quiet || bot.chat(`unknown command ${message_parts[0]}`) + break; + } +} + const load = (config) => { cfg = config bot = cfg.bot @@ -133,4 +228,4 @@ const unload = () => { bot.off('goal_reached', goalReached) } -module.exports = { load, unload, stop, initMoves, moveNear, moveXZ, moveY, follow } \ No newline at end of file +module.exports = { load, unload, command, stop, initMoves, moveNear, moveXZ, moveY, follow } \ No newline at end of file