@minecraft/creator-tools
Version:
Minecraft Creator Tools command line and libraries.
154 lines (152 loc) • 7.38 kB
JavaScript
"use strict";
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
if (kind === "m") throw new TypeError("Private method is not writable");
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
};
var _ServerManager_usePreview, _ServerManager_httpServer, _ServerManager_carto, _ServerManager_utilities, _ServerManager_env, _ServerManager_features, _ServerManager_isPrepared, _ServerManager_onShutdown;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ServerManagerFeatures = void 0;
const ste_events_1 = require("ste-events");
const NodeStorage_1 = require("./NodeStorage");
const HttpServer_1 = require("./HttpServer");
const ICartoData_1 = require("../app/ICartoData");
var ServerManagerFeatures;
(function (ServerManagerFeatures) {
ServerManagerFeatures[ServerManagerFeatures["all"] = 0] = "all";
ServerManagerFeatures[ServerManagerFeatures["allWebServices"] = 1] = "allWebServices";
ServerManagerFeatures[ServerManagerFeatures["basicWebServices"] = 2] = "basicWebServices";
})(ServerManagerFeatures = exports.ServerManagerFeatures || (exports.ServerManagerFeatures = {}));
class ServerManager {
get isAnyServerRunning() {
return false;
}
get carto() {
return __classPrivateFieldGet(this, _ServerManager_carto, "f");
}
get features() {
return __classPrivateFieldGet(this, _ServerManager_features, "f");
}
set features(featuresIn) {
__classPrivateFieldSet(this, _ServerManager_features, featuresIn, "f");
}
get onShutdown() {
return __classPrivateFieldGet(this, _ServerManager_onShutdown, "f").asEvent();
}
get usePreview() {
return __classPrivateFieldGet(this, _ServerManager_usePreview, "f");
}
set usePreview(newUsePreview) {
__classPrivateFieldSet(this, _ServerManager_usePreview, newUsePreview, "f");
}
constructor(env, carto) {
_ServerManager_usePreview.set(this, void 0);
_ServerManager_httpServer.set(this, void 0);
_ServerManager_carto.set(this, void 0);
_ServerManager_utilities.set(this, void 0);
_ServerManager_env.set(this, void 0);
this.maxServerIndex = 0;
_ServerManager_features.set(this, ServerManagerFeatures.all);
_ServerManager_isPrepared.set(this, false);
this.primaryServerPort = 19132;
this.backupWorldFileListings = {};
_ServerManager_onShutdown.set(this, new ste_events_1.EventDispatcher());
__classPrivateFieldSet(this, _ServerManager_utilities, env.utilities, "f");
__classPrivateFieldSet(this, _ServerManager_env, env, "f");
__classPrivateFieldSet(this, _ServerManager_carto, carto, "f");
this.dataStorage = new NodeStorage_1.default(this.getRootPath() + "data/", "");
}
stopWebServer() {
if (__classPrivateFieldGet(this, _ServerManager_httpServer, "f")) {
__classPrivateFieldGet(this, _ServerManager_httpServer, "f").stop();
}
}
async shutdown(message) {
this.stopWebServer();
if (__classPrivateFieldGet(this, _ServerManager_onShutdown, "f")) {
__classPrivateFieldGet(this, _ServerManager_onShutdown, "f").dispatch(this, message);
}
}
ensureHttpServer() {
if (!__classPrivateFieldGet(this, _ServerManager_httpServer, "f")) {
__classPrivateFieldSet(this, _ServerManager_httpServer, new HttpServer_1.default(__classPrivateFieldGet(this, _ServerManager_env, "f"), this), "f");
__classPrivateFieldGet(this, _ServerManager_httpServer, "f").carto = __classPrivateFieldGet(this, _ServerManager_carto, "f");
__classPrivateFieldGet(this, _ServerManager_httpServer, "f").init();
}
return __classPrivateFieldGet(this, _ServerManager_httpServer, "f");
}
get environment() {
return __classPrivateFieldGet(this, _ServerManager_env, "f");
}
getRootPath() {
let fullPath = __dirname;
const lastSlash = Math.max(fullPath.lastIndexOf("\\", fullPath.length - 2), fullPath.lastIndexOf("/", fullPath.length - 2));
if (lastSlash >= 0) {
fullPath = fullPath.substring(0, lastSlash + 1);
}
return fullPath;
}
get effectiveIsUsingPreview() {
return __classPrivateFieldGet(this, _ServerManager_usePreview, "f") || (__classPrivateFieldGet(this, _ServerManager_carto, "f") && __classPrivateFieldGet(this, _ServerManager_carto, "f").track === ICartoData_1.MinecraftTrack.preview);
}
replaceVersion(versionString, stub) {
if (versionString.endsWith(stub)) {
return undefined;
}
const lastPeriod = versionString.lastIndexOf(".");
if (lastPeriod >= 0) {
versionString = versionString.substring(0, lastPeriod - 1) + stub;
return versionString;
}
return undefined;
}
async prepare(force) {
if (!force && __classPrivateFieldGet(this, _ServerManager_isPrepared, "f")) {
return;
}
__classPrivateFieldSet(this, _ServerManager_isPrepared, true, "f");
}
getBasePortForSlot(slotNumber) {
if (!slotNumber) {
slotNumber = 0;
}
// assume if slotNumber > 79 they actually are suggesting a base port number
if (slotNumber > 79) {
return slotNumber;
}
// default minecraft base port = 19132, which is slot 0.
return 19132 + slotNumber * 64;
}
getHashFromStartInfo(startInfo) {
if (!startInfo) {
return undefined;
}
let hash = "";
if (startInfo.track) {
hash += startInfo.track?.toString();
}
hash += ".";
if (startInfo.mode) {
hash += startInfo.mode;
}
hash += ".";
if (startInfo.projectKey) {
hash += startInfo.projectKey;
}
hash += ".";
if (startInfo.worldSettings) {
hash += JSON.stringify(startInfo.worldSettings);
}
return hash;
}
register() { }
}
exports.default = ServerManager;
_ServerManager_usePreview = new WeakMap(), _ServerManager_httpServer = new WeakMap(), _ServerManager_carto = new WeakMap(), _ServerManager_utilities = new WeakMap(), _ServerManager_env = new WeakMap(), _ServerManager_features = new WeakMap(), _ServerManager_isPrepared = new WeakMap(), _ServerManager_onShutdown = new WeakMap();
//# sourceMappingURL=../maps/local/ServerManager.js.map