will now give self item in creative mode

This commit is contained in:
MaxRobinsonTheGreat 2024-06-22 15:35:18 -05:00
parent 6935035c7a
commit 7e71f12026
4 changed files with 14 additions and 2 deletions

View file

@ -12,6 +12,7 @@
"mineflayer-pvp": "^1.3.2",
"openai": "^4.4.0",
"patch-package": "^8.0.0",
"prismarine-item": "^1.14.0",
"replicate": "^0.29.4",
"vec3": "^0.1.10",
"yargs": "^17.7.2"

View file

@ -525,7 +525,7 @@ export async function placeBlock(bot, blockType, x, y, z, placeOn='bottom', dont
blockType += `[facing=${face}]`;
}
}
if (blockType === 'repeater' || blockType === 'comparator') {
if (blockType === 'ladder' || blockType === 'repeater' || blockType === 'comparator') {
blockType += `[facing=${face}]`;
}
@ -540,6 +540,10 @@ export async function placeBlock(bot, blockType, x, y, z, placeOn='bottom', dont
}
let block = bot.inventory.items().find(item => item.name === blockType);
if (!block && bot.game.gameMode === 'creative') {
await bot.creative.setInventorySlot(36, mc.makeItem(blockType, 1)); // 36 is first hotbar slot
block = bot.inventory.items().find(item => item.name === blockType);
}
if (!block) {
log(bot, `Don't have any ${blockType} to place.`);
return false;

View file

@ -261,6 +261,8 @@ export function shouldPlaceTorch(bot) {
const pos = getPosition(bot);
// TODO: check light level instead of nearby torches, block.light is broken
let nearest_torch = getNearestBlock(bot, 'torch', 6);
if (!nearest_torch)
nearest_torch = getNearestBlock(bot, 'wall_torch', 6);
if (!nearest_torch) {
const block = bot.blockAt(pos);
let has_torch = bot.inventory.items().find(item => item.name === 'torch');

View file

@ -1,6 +1,7 @@
import minecraftData from 'minecraft-data';
import settings from '../../settings.js';
import { createBot } from 'mineflayer';
import prismarine_items from 'prismarine-item';
import { pathfinder } from 'mineflayer-pathfinder';
import { plugin as pvp } from 'mineflayer-pvp';
import { plugin as collectblock } from 'mineflayer-collectblock';
@ -10,7 +11,7 @@ const armorManager = plugin;
const mc_version = settings.minecraft_version;
const mcdata = minecraftData(mc_version);
const Item = prismarine_items(mc_version);
export const WOOD_TYPES = ['oak', 'spruce', 'birch', 'jungle', 'acacia', 'dark_oak'];
export const MATCHING_WOOD_BLOCKS = [
@ -237,3 +238,7 @@ export function getBlockTool(blockName) {
}
return getItemName(Object.keys(block.harvestTools)[0]); // Double check first tool is always simplest
}
export function makeItem(name, amount=1) {
return new Item(getItemId(name), amount);
}