mindcraft/src/utils/mcdata.js

101 lines
2.6 KiB
JavaScript
Raw Normal View History

2023-08-15 23:39:02 -07:00
import minecraftData from 'minecraft-data';
2024-01-30 16:43:30 -06:00
import settings from '../settings.js';
import { createBot } from 'mineflayer';
import { pathfinder } from 'mineflayer-pathfinder';
2023-11-27 21:07:52 -06:00
import { plugin as pvp } from 'mineflayer-pvp';
import { plugin as collectblock } from 'mineflayer-collectblock';
2024-01-14 14:33:25 -06:00
import { plugin as autoEat } from 'mineflayer-auto-eat';
2024-01-16 15:52:52 -06:00
import plugin from 'mineflayer-armor-manager';
const armorManager = plugin;
2023-08-15 23:39:02 -07:00
2024-01-30 16:43:30 -06:00
const mc_version = settings.minecraft_version;
2023-11-27 21:07:52 -06:00
const mcdata = minecraftData(mc_version);
export function initBot(username) {
let bot = createBot({
username: username,
2024-01-30 16:43:30 -06:00
host: settings.host,
port: settings.port,
auth: settings.auth,
version: mc_version,
});
2023-11-27 21:07:52 -06:00
bot.loadPlugin(pathfinder);
bot.loadPlugin(pvp);
bot.loadPlugin(collectblock);
2024-01-14 14:33:25 -06:00
bot.loadPlugin(autoEat);
2024-01-16 15:52:52 -06:00
bot.loadPlugin(armorManager); // auto equip armor
2024-01-14 14:33:25 -06:00
return bot;
}
2023-08-15 23:39:02 -07:00
2024-01-25 13:25:36 -08:00
export function isHuntable(mob) {
if (!mob || !mob.name) return false;
const animals = ['chicken', 'cod', 'cow', 'llama', 'mooshroom', 'pig', 'pufferfish', 'rabbit', 'salmon', 'sheep', 'squid', 'tropical_fish', 'turtle'];
return animals.includes(mob.name.toLowerCase()) && !mob.metadata[16]; // metadata 16 is not baby
}
export function isHostile(mob) {
if (!mob || !mob.name) return false;
return (mob.type === 'mob' || mob.type === 'hostile') && mob.name !== 'iron_golem' && mob.name !== 'snow_golem';
}
2023-08-15 23:39:02 -07:00
export function getItemId(item) {
2023-09-29 12:53:56 -07:00
return mcdata.itemsByName[item].id;
2023-08-17 00:00:57 -07:00
}
export function getItemName(itemId) {
return mcdata.items[itemId].name;
}
2023-08-17 00:00:57 -07:00
2023-09-29 12:53:56 -07:00
export function getAllItems(ignore) {
if (!ignore) {
ignore = [];
}
let items = []
for (const itemId in mcdata.items) {
const item = mcdata.items[itemId];
if (!ignore.includes(item.name)) {
items.push(item);
}
}
return items;
}
export function getAllItemIds(ignore) {
const items = getAllItems(ignore);
let itemIds = [];
for (const item of items) {
itemIds.push(item.id);
}
return itemIds;
}
export function getAllBlocks(ignore) {
if (!ignore) {
ignore = [];
}
2023-08-17 00:00:57 -07:00
let blocks = []
2023-09-29 12:53:56 -07:00
for (const blockId in mcdata.blocks) {
const block = mcdata.blocks[blockId];
if (!ignore.includes(block.name)) {
blocks.push(block);
2023-08-17 00:00:57 -07:00
}
}
return blocks;
}
2023-09-29 12:53:56 -07:00
export function getAllBlockIds(ignore) {
const blocks = getAllBlocks(ignore);
let blockIds = [];
for (const block of blocks) {
blockIds.push(block.id);
}
return blockIds;
}
2024-01-30 16:43:30 -06:00
export function getAllBiomes() {
return mcdata.biomes;
}