UNPKG

minecraft-utils-shared

Version:

Shared utils for Minecraft Bedrock / Forge development related utilities.

124 lines (115 loc) 5.72 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _os = _interopRequireDefault(require("os")); var _path = _interopRequireDefault(require("path")); var _url = require("url"); var _file_finder = _interopRequireDefault(require("./file_finder.cjs")); var _files = _interopRequireDefault(require("./files.cjs")); var _template = _interopRequireDefault(require("./template.cjs")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * @file Minecraft Utils Shared - Default Paths * @license Apache-2.0 * @author Markus@Bordihn.de (Markus Bordihn) */ /** * @returns {string} */ const getConfigurationPath = () => { if (process.env) { if ((process.env.npm_lifecycle_script || '').includes('minecraft-bedrock-utils') || (process.env.npm_package_name || '').includes('minecraft-bedrock-utils')) { return '.minecraft-bedrock-utils'; } else if ((process.env.npm_lifecycle_script || '').includes('minecraft-forge-utils') || (process.env.npm_package_name || '').includes('minecraft-forge-utils')) { return '.minecraft-forge-utils'; } } return '.minecraft-utils-shared'; }; // General path const configPath = _path.default.join(process.cwd(), getConfigurationPath()); const modulePath = (0, _url.fileURLToPath)(new _url.URL('..', require('url').pathToFileURL(__filename).toString())); const projectPath = process.cwd(); const templatePath = _template.default.templatePath; // Assets path const assetsPath = modulePath.endsWith(`${_path.default.sep}dist`) || modulePath.endsWith(`${_path.default.sep}dist${_path.default.sep}`) ? _path.default.join(modulePath, '..', 'assets') : _path.default.join(modulePath, 'assets'); // Manifest files const manifests = _file_finder.default.getManifestsInWorkingPath(); // Java files const javaFiles = _file_finder.default.getJavaFilesInWorkingPath(); // Minecraft Bedrock specific paths const minecraftBedrockPath = _files.default.returnIfFileExists(process.env.LOCALAPPDATA, 'Packages\\Microsoft.MinecraftUWP_8wekyb3d8bbwe'); const minecraftBedrockLocalStatePath = _files.default.returnIfFileExists(minecraftBedrockPath, _path.default.join('LocalState', 'games', 'com.mojang')); // Minecraft Forge specific paths const minecraftForgeModMainClassFile = javaFiles ? _file_finder.default.getModMainClassInWorkingPath(javaFiles) : ''; const minecraftForgeModPath = javaFiles ? _file_finder.default.getModInWorkingPath(javaFiles) : ''; const minecraftForgeResourcePath = _files.default.returnIfFileExists(projectPath, _path.default.join('src', 'main', 'resources')); console.info(minecraftForgeResourcePath); const minecraftForgeModDefinition = _files.default.returnIfFileExists(minecraftForgeResourcePath, _path.default.join('META-INF', 'mods.toml')); // Relative Path converter const toRelativePath = folderPath => { if (folderPath && _path.default.isAbsolute(folderPath)) { return _path.default.relative(projectPath, folderPath); } return folderPath; }; var _default = { // General Paths modulePath: toRelativePath(modulePath), // Project project: { config: toRelativePath(configPath), path: toRelativePath(projectPath), template: toRelativePath(templatePath) }, // Assets specific assets: { armor: toRelativePath(_path.default.join(assetsPath, 'armor')), base: toRelativePath(assetsPath), init: toRelativePath(_path.default.join(assetsPath, 'init')), items: toRelativePath(_path.default.join(assetsPath, 'items')), logos: toRelativePath(_path.default.join(assetsPath, 'logos')), misc: toRelativePath(_path.default.join(assetsPath, 'misc')), models: toRelativePath(_path.default.join(assetsPath, 'models')) }, // Manifests manifests: manifests || [], // Java files javaFiles: javaFiles || [], // Minecraft Bedrock specific bedrock: { client: { path: minecraftBedrockPath, localState: minecraftBedrockLocalStatePath, developmentBehaviorPacks: _files.default.returnIfFileExists(minecraftBedrockLocalStatePath, 'development_behavior_packs'), developmentResourcePacks: _files.default.returnIfFileExists(minecraftBedrockLocalStatePath, 'development_resource_packs'), developmentSkinPacks: _files.default.returnIfFileExists(minecraftBedrockLocalStatePath, 'development_skin_packs'), behaviorPacks: _files.default.returnIfFileExists(minecraftBedrockLocalStatePath, 'behavior_packs'), resourcePacks: _files.default.returnIfFileExists(minecraftBedrockLocalStatePath, 'resource_packs'), skinPacks: _files.default.returnIfFileExists(minecraftBedrockLocalStatePath, 'skin_packs') }, behaviorPack: manifests ? _file_finder.default.getBehaviorPackInWorkingPath(manifests) || '' : '', resourcePack: manifests ? _file_finder.default.getResourcePackInWorkingPath(manifests) || '' : '' }, // Minecraft Forge specific forge: { javaPath: toRelativePath(_path.default.join(projectPath, 'src', 'main', 'java')), resourcePath: toRelativePath(_path.default.join(projectPath, 'src', 'main', 'resources')), modFile: toRelativePath(minecraftForgeModDefinition, projectPath), modPath: toRelativePath(minecraftForgeModPath, projectPath), modMainClassFile: toRelativePath(minecraftForgeModMainClassFile, projectPath), blockPath: toRelativePath(_files.default.returnIfFileExists(minecraftForgeModPath, 'block')), itemPath: toRelativePath(_files.default.returnIfFileExists(minecraftForgeModPath, 'item')) }, // Test test: { tmp: _path.default.join(_os.default.tmpdir(), '.minecraft-utils-shared') }, // Misc misc: { tmp: _os.default.tmpdir() } }; exports.default = _default;