Skip to content

mineflayer plugin which gives bots a function to find the nearest block

Notifications You must be signed in to change notification settings

Darthfett/mineflayer-blockfinder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mineflayer-blockfinder

A library to help your mineflayer bot find blocks in the 3D world.

See mineflayer.

Usage

var mineflayer = require('mineflayer');
var blockFinderPlugin = require('mineflayer-blockfinder')(mineflayer);
var bot = mineflayer.createBot({username: 'Player'});

// Install the plugin
bot.loadPlugin(blockFinderPlugin);

// Sample usage
bot.once('spawn', function() {
  bot.findBlock({
    point: bot.entity.position,
    matching: 56,
    maxDistance: 256,
    count: 1,
  }, function(err, blocks) {
    if (err) {
      return bot.chat('Error trying to find Diamond Ore: ' + err);
      bot.quit('quitting');
      return;
    }
    if (blocks.length) {
      bot.chat('I found a Diamond Ore block at ' + blocks[0].position + '.');
      bot.quit('quitting');
      return;
    } else {
      bot.chat("I couldn't find any Diamond Ore blocks within 256.");
      bot.quit('quitting');
      return;
    }
  });
});

Dependencies

Installation

npm install mineflayer-blockfinder

Or clone and cd into the directory

npm install .

Windows: You will need to install:

Documentation

bot.findBlock(options, callback)

Finds the nearest block(s) to the given point.

  • options - Additional options for the search:
    • point - The start position of the search.
    • matching - A function that returns true if the given block is a match. Also supports this value being a block id or array of block ids.
    • maxDistance - The furthest distance for the search, defaults to 64.
    • count - The number of blocks to find at most, defaults to 1.
  • callback - A callback function to get the result. Function signature:
function(err, arrayOfBlocks)

bot.findBlockSync(options)

Finds the nearest block(s) to the given point synchronously.

  • options - See bot.findBlock.

History

0.0.7

  • DiamondFinder tested working, fix another issue related to recursion.

0.0.6

  • Fix recursion issue (thanks to rom1504)

0.0.5

  • Added new OctahedronIterator class, a fast finder algorithm that always returns the closest block, and is comparable with the cube algorithm.

0.0.4

  • Reverted algorithm to use the old, fast cube algorithm.

0.0.3

  • Fix 'matching' option to allow for array of ids instead of crashing.

0.0.2

  • Refactored algorithm to use an Iterator approach, to allow for re-useable code.
  • Rewrote block finding algorithm to guarantee the closest block is always found first.
  • Matching argument now takes an array of block ids, instead of block enums.

About

mineflayer plugin which gives bots a function to find the nearest block

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •