minecraft-utils-shared
Version:
Shared utils for Minecraft Bedrock / Forge development related utilities.
124 lines (115 loc) • 5.72 kB
JavaScript
;
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;