YuShu
Initial commit
36ba3ef
async function mineBlock(bot, name, count = 1) {
// return if name is not string
if (typeof name !== "string") {
throw new Error(`name for mineBlock must be a string`);
}
if (typeof count !== "number") {
throw new Error(`count for mineBlock must be a number`);
}
const blockByName = mcData.blocksByName[name];
if (!blockByName) {
throw new Error(`No block named ${name}`);
}
const blocks = bot.findBlocks({
matching: [blockByName.id],
maxDistance: 32,
count: 1024,
});
if (blocks.length === 0) {
bot.chat(`No ${name} nearby, please explore first`);
_mineBlockFailCount++;
if (_mineBlockFailCount > 10) {
throw new Error(
"mineBlock failed too many times, make sure you explore before calling mineBlock"
);
}
return;
}
const targets = [];
for (let i = 0; i < blocks.length; i++) {
targets.push(bot.blockAt(blocks[i]));
}
await bot.collectBlock.collect(targets, {
ignoreNoPath: true,
count: count,
});
bot.save(`${name}_mined`);
}