@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
46 lines (45 loc) • 1.97 kB
JavaScript
;
// 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();