@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
278 lines (277 loc) • 14.4 kB
TypeScript
import IFile from "../storage/IFile";
import IFolder from "../storage/IFolder";
import IStorage from "../storage/IStorage";
import ICreatorToolsData, { CreatorToolsEditorViewMode, RemoteServerAccessLevel, MinecraftFlavor, DedicatedServerMode, MinecraftGameConnectionMode, MinecraftTrack, CreatorToolsEditPreference, ThemePreference } from "./ICreatorToolsData";
import Project from "./Project";
import { ProjectFocus, ProjectScriptLanguage } from "./IProjectData";
import IStatus, { StatusTopic } from "./Status";
import GitHubManager from "../github/GitHubManager";
import IGallery from "./IGallery";
import ILocalUtilities from "../core/ILocalUtilities";
import IMinecraft from "./IMinecraft";
import RemoteMinecraft from "./RemoteMinecraft";
import MinecraftPush from "./MinecraftPush";
import Package from "./Package";
import ZipStorage from "../storage/ZipStorage";
import { ProjectItemType } from "./IProjectItemData";
import IGalleryItem, { GalleryItemType } from "./IGalleryItem";
import DeploymentTarget, { DeploymentTargetType } from "./DeploymentTarget";
export declare enum CreatorToolsMinecraftState {
none = 0,
initializing = 1,// for phserver, this is starting to auto-download
initialized = 2,
preparing = 3,
prepared = 4,
starting = 5,// for phserver, the server is starting
started = 6,// for phserver, the server is up and ready
stopping = 7,
stopped = 8,
error = 9,
newMinecraft = 10,
disconnected = 11
}
export declare enum CreatorToolsMinecraftErrorStatus {
none = 0,
actionInProgress = 1,
serverUnavailable = 2,
serverError = 3,
loginFailed = 4,
generalError = 5,
configuration = 6
}
export declare const CreatorToolsTargetSettings: string[];
export declare const SidePaneMaxWidth = 880;
export declare const SidePaneMinWidth = 280;
export declare const DefaultCreatorName = "Minecraft Creator";
export default class CreatorTools {
#private;
private _isLoaded;
private _userGitHub;
private _anonGitHub;
contentRoot: string;
processHostedMinecraft: IMinecraft | undefined;
deploymentStorageMinecraft: IMinecraft | undefined;
gameMinecraft: IMinecraft | undefined;
remoteMinecraft: RemoteMinecraft | undefined;
activeMinecraft: IMinecraft | undefined;
prefsStorage: IStorage;
projectsStorage: IStorage;
deploymentStorage: IStorage[];
worldStorage: IStorage | null;
packStorage: IStorage | null;
workingStorage: IStorage | null;
deploymentTargets: DeploymentTarget[];
localFolderExists: ((path: string) => Promise<boolean>) | undefined;
localFileExists: ((path: string) => Promise<boolean>) | undefined;
ensureLocalFolder: ((path: string) => IFolder) | undefined;
createMinecraft: ((flavor: MinecraftFlavor, creatorTools: CreatorTools) => IMinecraft | undefined) | undefined;
canCreateMinecraft: ((flavor: MinecraftFlavor) => boolean) | undefined;
private _pendingPackLoadRequests;
private _arePacksLoading;
private _remoteServerAuthToken?;
private _remoteServerEulaAccepted?;
local: ILocalUtilities | undefined;
projects: Project[];
status: IStatus[];
activeOperations: IStatus[];
packs?: Package[];
mcLogs: {
[name: string]: string[] | undefined;
};
_gallery?: IGallery;
_galleryLoaded: boolean;
isDeployingToMinecraft: boolean;
hasAttemptedPersistentBrowserStorageSwitch: boolean;
private _onDeploymentStorageChanged;
private _onMinecraftStateChanged;
private _onMinecraftRefreshed;
private _onPropertyChanged;
private _onLoaded;
private _onStatusAdded;
private _onOperationCompleted;
private _onStatusAddedAsync;
private _onGalleryLoaded;
get defaultDeploymentTargetType(): DeploymentTargetType;
set defaultDeploymentTargetType(newType: DeploymentTargetType);
get isLoaded(): boolean;
get collapsedTypes(): number[];
get data(): ICreatorToolsData;
get defaultDeploymentStorage(): IStorage;
get defaultDeploymentTarget(): DeploymentTarget;
set collapsedTypes(newCollapsedTypes: number[]);
get showMruPane(): boolean;
set showMruPane(newValue: boolean);
get mruItemPaths(): string[];
set mruItemPaths(newPaths: string[]);
get viewAsFiles(): boolean;
set viewAsFiles(newValue: boolean);
/**
* Adds a project item path to the MRU list.
* Moves existing entries to front and maintains max 10 items.
*/
addToMru(projectPath: string): void;
/**
* Removes a project item path from the MRU list.
*/
removeFromMru(projectPath: string): void;
get editPreference(): CreatorToolsEditPreference | undefined;
set editPreference(newValue: CreatorToolsEditPreference | undefined);
get disableFirstRun(): boolean;
set disableFirstRun(newValue: boolean);
get themePreference(): ThemePreference | undefined;
set themePreference(newValue: ThemePreference | undefined);
get worldSettings(): import("../minecraft/IWorldSettings").IWorldSettings;
get editorWorldSettings(): import("../minecraft/IWorldSettings").IWorldSettings;
get activeMinecraftState(): CreatorToolsMinecraftState;
get onMinecraftStateChanged(): import("ste-events").IEvent<IMinecraft, CreatorToolsMinecraftState>;
get onDeploymentStorageChanged(): import("ste-events").IEvent<CreatorTools, IStorage>;
get formatBeforeSave(): boolean;
set formatBeforeSave(newValue: boolean);
get showLivePreview(): boolean;
set showLivePreview(newValue: boolean);
get conversionJarPath(): string | undefined;
set conversionJarPath(newValue: string | undefined);
get preferredTextSize(): number;
set preferredTextSize(newValue: number);
get livePreviewWidth(): number;
set livePreviewWidth(newValue: number);
get itemSidePaneWidth(): number;
set itemSidePaneWidth(newValue: number);
get toolPaneWidth(): number;
set toolPaneWidth(newValue: number);
get preferredSuite(): number | undefined;
set preferredSuite(newValue: number | undefined);
get track(): MinecraftTrack | undefined;
set track(newTrack: MinecraftTrack | undefined);
get effectiveTrack(): MinecraftTrack;
get useEditor(): boolean | undefined;
set useEditor(newUseEditor: boolean | undefined);
get windowX(): number | undefined;
set windowX(newVal: number | undefined);
get windowY(): number | undefined;
set windowY(newVal: number | undefined);
get windowWidth(): number | undefined;
set windowWidth(newVal: number | undefined);
get windowHeight(): number | undefined;
set windowHeight(newVal: number | undefined);
get windowSlot(): number | undefined;
set windowSlot(newVal: number | undefined);
get creator(): string | undefined;
set creator(newCreator: string | undefined);
get windowState(): number | undefined;
set windowState(newVal: number | undefined);
get lastActiveMinecraftFlavor(): MinecraftFlavor | undefined;
set lastActiveMinecraftFlavor(lastActiveMinecraftFlavor: MinecraftFlavor | undefined);
get remoteServerUrl(): string | undefined;
get fullRemoteServerUrl(): string;
set remoteServerUrl(newPath: string | undefined);
get iAgreeToTheMinecraftEndUserLicenseAgreementAndPrivacyStatementAtMinecraftDotNetSlashEula(): boolean | undefined;
set iAgreeToTheMinecraftEndUserLicenseAgreementAndPrivacyStatementAtMinecraftDotNetSlashEula(newPort: boolean | undefined);
get dedicatedServerSlotCount(): number | undefined;
set dedicatedServerSlotCount(newPort: number | undefined);
get dedicatedServerMode(): DedicatedServerMode | undefined;
set dedicatedServerMode(newMode: DedicatedServerMode | undefined);
get dedicatedServerPath(): string | undefined;
set minecraftGameMode(newMode: MinecraftGameConnectionMode | undefined);
get minecraftGameMode(): MinecraftGameConnectionMode | undefined;
set dedicatedServerPath(newPath: string | undefined);
get remoteServerPort(): number | undefined;
set remoteServerPort(newPort: number | undefined);
get remoteServerAccessLevel(): RemoteServerAccessLevel | undefined;
set remoteServerAccessLevel(newAccessLevel: RemoteServerAccessLevel | undefined);
get remoteServerPasscode(): string | undefined;
set remoteServerPasscode(newPath: string | undefined);
get remoteServerAuthToken(): string | undefined;
set remoteServerAuthToken(newToken: string | undefined);
get remoteServerEulaAccepted(): boolean | undefined;
set remoteServerEulaAccepted(newValue: boolean | undefined);
get editorViewMode(): CreatorToolsEditorViewMode;
set editorViewMode(newViewMode: CreatorToolsEditorViewMode);
get gallery(): IGallery;
get galleryLoaded(): boolean;
get userGitHub(): GitHubManager;
get anonGitHub(): GitHubManager;
get onLoaded(): import("ste-events").IEvent<CreatorTools, CreatorTools>;
get onGalleryLoaded(): import("ste-events").IEvent<CreatorTools, IGallery>;
get onPropertyChanged(): import("ste-events").IEvent<CreatorTools, string>;
get onStatusAdded(): import("ste-events").IEvent<CreatorTools, IStatus>;
get onOperationCompleted(): import("ste-events").IEvent<CreatorTools, number>;
get successfullyConnectedWebSocketToMinecraft(): boolean;
set successfullyConnectedWebSocketToMinecraft(newValue: boolean);
get successfullyStartedMinecraftServer(): boolean;
set successfullyStartedMinecraftServer(newValue: boolean);
get successfullyConnectedToRemoteMinecraft(): boolean;
set successfullyConnectedToRemoteMinecraft(newValue: boolean);
get defaultMinecraftFlavor(): MinecraftFlavor;
subscribeStatusAddedAsync(fn: (creatorTools: CreatorTools, status: IStatus) => Promise<void>): void;
unsubscribeStatusAddedAsync(fn: (creatorTools: CreatorTools, status: IStatus) => Promise<void>): void;
setMinecraftFlavor(newValue: MinecraftFlavor): void;
get autoStartMinecraft(): boolean;
set autoStartMinecraft(newValue: boolean);
get file(): IFile;
get prefsProjectsFolder(): IFolder;
constructor(settingsStorage: IStorage, projectsStorage: IStorage, deploymentsStorage: IStorage[], worldStorage: IStorage | null, packStorage: IStorage | null, workingStorage: IStorage | null, contentRoot: string | null);
initializeWorldSettings(): void;
getDeploymentTarget(target: DeploymentTargetType): DeploymentTarget | undefined;
private ensureDefaultWorldName;
initializeEditorWorldSettings(): void;
private ensureDefaultEditorWorldName;
getCustomTool(index: number): import("./ICustomTool").default;
get defaultFunction(): string;
set defaultFunction(newFunction: string);
runCommand(command: string, project?: Project): Promise<import("./ICommand").ICommandResult>;
runMinecraftCommand(command: string): Promise<string>;
loadPacks(): Promise<void>;
ensureAllTypesCollapsedExcept(itemType: ProjectItemType): void;
ensureTypeIsCollapsed(itemType: ProjectItemType): void;
ensureTypeIsNotCollapsed(itemType: ProjectItemType): void;
loadPacksFromFolder(folder: IFolder): Promise<void>;
getPackByName(packName: string, isWorldFocused?: boolean): Package;
getPackageByNameAndHash(packName: string, hash?: string): Package;
ensurePackForFile(file: IFile): Promise<Package>;
_ensurePack(storagePath: string): Package;
_handleMessageFromAppService(command: string, data: string): void;
_handleLogFileUpdated(fileName: string, contents: string): void;
notifyStatusUpdate(message: string, topic?: StatusTopic): Promise<void>;
private ensureStatusArrayIsTrimmed;
callStatusAddedListeners(status: IStatus): Promise<void>;
notifyExternalStatus(status: IStatus): number;
notifyOperationUpdate(updateOperationId: number, message: string, topic?: StatusTopic): Promise<void>;
notifyOperationStarted(message: string, topic?: StatusTopic): Promise<number>;
notifyOperationEnded(endedOperationId: number, message?: string, topic?: StatusTopic, endedWithErrors?: boolean): Promise<void>;
updateOperation(id: number, newMessage: string): void;
removeOperation(id: number): void;
save(): Promise<void>;
loadGallery(): Promise<IGallery>;
getGalleryProjectByGitHub(repoName: string, owner: string, branch?: string, folder?: string, withFiles?: boolean): Promise<IGalleryItem>;
getGalleryProjectById(galleryProjectId: string): Promise<IGalleryItem>;
getGalleryProjectByCaption(galleryProjectTitle: string): Promise<IGalleryItem>;
getGalleryProjectByType(itemType: GalleryItemType): IGalleryItem[];
getNewProjectName(seedName: string): Promise<string>;
createNewProject(newProjectName: string, newProjectPath: string | undefined, newProjectFolder: IFolder | undefined, newProjectFolderTitle: string | undefined, focus: ProjectFocus, includeDefaultItems: boolean, projectLanguage?: ProjectScriptLanguage): Promise<Project>;
createProjectFromContent(jsonStringOrBase64ZipContent: string): Promise<string | Project>;
createAndDeployProjectFromPath(path: string): Promise<Project | string | null>;
createProjectFromPath(path: string): Promise<string | Project>;
createProjectFromFolder(folder: IFolder): Promise<Project>;
createProjectFromFolderPath(path: string): Promise<Project>;
deleteProjectByName(projectName: string): Promise<void>;
removeProjectByName(projectName: string): Promise<void>;
removeProject(project: Project): void;
getProjectByName(projectName: string): Project;
getProjectByMainLocalFolderPath(localPath: string): Project;
ensureProjectFromLocalStoragePath(messageProjectPath: string): Promise<Project>;
ensureProjectForLocalFolder(folderPath: string, newProjectName?: string, openDirect?: boolean): Promise<Project>;
getExportZip(): Promise<ZipStorage>;
load(force?: boolean): Promise<void>;
considerStartingMinecraft(): Promise<void>;
connectToMinecraft(): Promise<void>;
canPrepareAndStartMinecraft(): boolean;
prepareAndStartToMinecraft(push: MinecraftPush): Promise<void>;
private _bubbleMinecraftRefreshed;
private _bubbleMinecraftStateChanged;
ensureRemoteMinecraft(): RemoteMinecraft;
ensureProcessHostedMinecraft(): IMinecraft;
ensureDeploymentStorageMinecraft(): IMinecraft;
ensureGameMinecraft(): IMinecraft;
ensureMinecraft(flavor: MinecraftFlavor): IMinecraft;
}