UNPKG

@minecraft/creator-tools

Version:

Minecraft Creator Tools command line and libraries.

152 lines (151 loc) 5.98 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.CartoServerToolsScriptModuleId = void 0; const ModuleConfig_1 = __importDefault(require("./ModuleConfig")); exports.CartoServerToolsScriptModuleId = "ead57a90-41fc-4f3b-8e1a-ddd64c99da05"; class ServerConfigManager { _serverConfigFolder; _configsByModule = {}; get serverConfigFolder() { return this._serverConfigFolder; } set serverConfigFolder(newConfigFolder) { this._serverConfigFolder = newConfigFolder; } ensureDefaultConfig() { const mc = new ModuleConfig_1.default(); mc.permissionsAllowedModules = ["@minecraft/server-gametest", "@minecraft/server", "@minecraft/server-ui"]; this._configsByModule["default"] = mc; } addCartoConfig() { const mc = new ModuleConfig_1.default(); mc.permissionsAllowedModules = [ "@minecraft/server-gametest", "@minecraft/server", "@minecraft/server-ui", "@minecraft/server-net", "@minecraft/server-admin", ]; this._configsByModule[exports.CartoServerToolsScriptModuleId] = mc; } async writeFiles() { if (this._serverConfigFolder === undefined) { return; } for (const moduleName in this._configsByModule) { const config = this._configsByModule[moduleName]; const moduleFolder = this._serverConfigFolder.ensureFolder(moduleName.toLowerCase()); await moduleFolder.ensureExists(); const permissionsFile = moduleFolder.ensureFile("permissions.json"); const permissionsData = { allowed_modules: config.permissionsAllowedModules, }; const permissionsFIleExists = await permissionsFile.exists(); let text; if (permissionsFIleExists) { await permissionsFile.loadContent(true); text = permissionsFile.content; } let newText = JSON.stringify(permissionsData); // backup the server properties file if it's not generated if (text && text.length > 0 && text !== newText) { const now = new Date(); const fileCopy = moduleFolder.ensureFile("permissions.json." + now.getFullYear() + "." + (now.getMonth() + 1) + "." + now.getDate() + "." + now.getHours() + "." + now.getMinutes() + ".cartobackup"); fileCopy.setContent(text); await fileCopy.saveContent(); } permissionsFile.setContent(newText); await permissionsFile.saveContent(); const varFile = moduleFolder.ensureFile("variables.json"); const varFileExists = await varFile.exists(); if (varFileExists) { if (!varFile.isContentLoaded) { await varFile.loadContent(true); } text = varFile.content; } if (config.variables) { newText = JSON.stringify(config.variables); } else { newText = undefined; } // backup the server properties file if it's not generated if (text && text.length > 0 && text !== newText) { const now = new Date(); const fileCopy = moduleFolder.ensureFile("variables.json." + now.getFullYear() + "." + (now.getMonth() + 1) + "." + now.getDate() + "." + now.getHours() + "." + now.getMinutes() + ".cartobackup"); fileCopy.setContent(text); await fileCopy.saveContent(); } if (!newText && varFileExists) { await varFile.deleteThisFile(); } else if (newText) { varFile.content = newText; await varFile.saveContent(); } const secretsFile = moduleFolder.ensureFile("secrets.json"); const secretsFileExists = await secretsFile.exists(); if (secretsFileExists) { if (!secretsFile.isContentLoaded) { await secretsFile.loadContent(true); } text = secretsFile.content; } if (config.secrets) { newText = JSON.stringify(config.secrets); } else { newText = undefined; } // backup the server properties file if it's not generated if (text && text.length > 0 && text !== newText) { const now = new Date(); const fileCopy = moduleFolder.ensureFile("secrets.json." + now.getFullYear() + "." + (now.getMonth() + 1) + "." + now.getDate() + "." + now.getHours() + "." + now.getMinutes() + ".cartobackup"); fileCopy.setContent(text); await fileCopy.saveContent(); } if (!newText && secretsFileExists) { await secretsFile.deleteThisFile(); } else if (newText) { secretsFile.content = newText; await secretsFile.saveContent(); } } } } exports.default = ServerConfigManager;