Download Adam/control_primitives/mineBlock.js from OpenCausaLab/ADAM: direct link, hf CLI and curl.
- Browser
- Download file 1.15 kB
-
https://huggingface.co/OpenCausaLab/ADAM/resolve/main/Adam/control_primitives/mineBlock.js
- Command line
-
hf download hf://OpenCausaLab/ADAM/Adam/control_primitives/mineBlock.js
-
curl -L -o mineBlock.js https://huggingface.co/OpenCausaLab/ADAM/resolve/main/Adam/control_primitives/mineBlock.js
1.15 kB
| 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`); | |
| } | |