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