UNPKG

@minecraft/creator-tools

Version:

Minecraft Creator Tools command line and libraries.

46 lines (45 loc) 1.97 kB
"use strict"; // Copyright (c) Microsoft Corporation. // Licensed under the MIT License. Object.defineProperty(exports, "__esModule", { value: true }); exports.reloadProjectCommand = exports.ReloadProjectCommand = void 0; const IToolCommand_1 = require("../IToolCommand"); class ReloadProjectCommand extends IToolCommand_1.ToolCommandBase { metadata = { name: "reload", description: "Re-scan project files and refresh the item list", category: "Project", requiresProject: true, isWriteCommand: false, examples: ["/reload"], }; async execute(context, _args, _flags) { if (!context.project) { context.output.error("No active project — open a project before running /reload."); return this.error("NO_PROJECT", "No active project"); } const project = context.project; const before = project.items.length; try { context.output.info(`Reloading project '${project.name}'...`); await project.inferProjectItemsFromFiles(true); const after = project.items.length; const delta = after - before; const deltaStr = delta === 0 ? "no change" : delta > 0 ? `+${delta}` : `${delta}`; context.output.success(`Reloaded '${project.name}': ${after} item(s) (${deltaStr}).`); return this.success(`Reloaded ${after} items`, { projectName: project.name, itemCountBefore: before, itemCountAfter: after, delta, }); } catch (error) { const message = error instanceof Error ? error.message : String(error); context.output.error(`Reload failed: ${message}`); return this.error("RELOAD_ERROR", `Failed to reload project: ${message}`); } } } exports.ReloadProjectCommand = ReloadProjectCommand; exports.reloadProjectCommand = new ReloadProjectCommand();