UNPKG

@minecraft/creator-tools

Version:

Minecraft Creator Tools command line and libraries.

79 lines (78 loc) 3.56 kB
"use strict"; // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.infoCommand = exports.InfoCommand = void 0; const IToolCommand_1 = require("../IToolCommand"); const IProjectItemData_1 = require("../../IProjectItemData"); const ProjectItemUtilities_1 = __importDefault(require("../../ProjectItemUtilities")); class InfoCommand extends IToolCommand_1.ToolCommandBase { metadata = { name: "info", description: "Display metadata about the current project (name, item counts, pack info)", aliases: ["i"], category: "Project", requiresProject: true, isWriteCommand: false, examples: ["/info", "/i"], }; async execute(context, _args, _flags) { if (!context.project) { context.output.error("No active project — open a project before running /info."); return this.error("NO_PROJECT", "No active project"); } const project = context.project; const items = project.items || []; let bpItemCount = 0; let rpItemCount = 0; let bpManifestCount = 0; let rpManifestCount = 0; for (const item of items) { if (ProjectItemUtilities_1.default.isBehaviorRelated(item.itemType)) { bpItemCount++; } else if (ProjectItemUtilities_1.default.isResourceRelated(item.itemType)) { rpItemCount++; } if (item.itemType === IProjectItemData_1.ProjectItemType.behaviorPackManifestJson) { bpManifestCount++; } else if (item.itemType === IProjectItemData_1.ProjectItemType.resourcePackManifestJson) { rpManifestCount++; } } const title = project.title || project.name; context.output.info(`Project: ${title}`); if (project.description) { context.output.info(`Description: ${project.description}`); } context.output.info(`Total items: ${items.length}`); context.output.info(`Behavior pack: ${bpItemCount} item(s) (${bpManifestCount} manifest${bpManifestCount === 1 ? "" : "s"})`); context.output.info(`Resource pack: ${rpItemCount} item(s) (${rpManifestCount} manifest${rpManifestCount === 1 ? "" : "s"})`); if (project.defaultBehaviorPackUniqueId) { context.output.info(`Default BP uuid: ${project.defaultBehaviorPackUniqueId}`); } if (project.defaultResourcePackUniqueId) { context.output.info(`Default RP uuid: ${project.defaultResourcePackUniqueId}`); } const summary = `${items.length} items (BP=${bpItemCount}, RP=${rpItemCount})`; context.output.success(summary); return this.success(summary, { name: project.name, title, description: project.description || "", itemCount: items.length, behaviorPackItems: bpItemCount, resourcePackItems: rpItemCount, behaviorPackManifests: bpManifestCount, resourcePackManifests: rpManifestCount, defaultBehaviorPackUniqueId: project.defaultBehaviorPackUniqueId, defaultResourcePackUniqueId: project.defaultResourcePackUniqueId, }); } } exports.InfoCommand = InfoCommand; exports.infoCommand = new InfoCommand();