All pack.xz libraries now have their MD5s properly calculated. Sha1 validations are performed on jar libraries. The checksums forge provides for compressed files are neither the sha1 or md5 of the initial or extracted file. Ignoring those for now. Still TODO is integration with baseurl. Might move both that and base path to the .env file to reduce redundency in command processing.
Nebula
Generate a distribution.json for Helios.
Requirements
- Node.js 12
- Java 8+ (https://adoptopenjdk.net/)
- This is required to process XZ files.
Setup
- Clone the repository
- Install the dependencies (
npm i) - Create a
.envfile at the root directory and set the required values.
Example
JAVA_EXECUTABLE=C:\Program Files\AdoptOpenJDK\jdk-8.0.222.10-hotspot\bin\java.exe
Usage
Nebula is not complete. The following usage is tentative.
Commands
Commands will be documented here. You can run any command with the --help option to view more information.
Init
Init commands are used for initializing empty file structures.
Aliases: [init, i]
Subcommands
Init Root
Generate an empty standard file structure.
init root <options>
Options:
--root <string>Specify the root directory.
Generate
Generate commands are used for generation.
Aliases: [generate, g]
SubCommands
Generate Server
Generate an new server in the root directory. Options are provided to include forge/liteloader in the generated server.
generate server <id> <version> <options>
Options:
--root <string>Specify the root directory.--forge <boolean>Include forge- OPTIONAL (default: true)
--liteloader <boolean>- OPTIONAL (default: false)
Example Usage
generate server Test1 1.12.2 --root C:/TestRoot --forge true
Generate Distribution
Generate a distribution file from the root file structure.
generate distro [name] <options>
Arguments:
nameThe name of the distribution file.- OPTIONAL (default:
distribution)
- OPTIONAL (default:
Options:
--root <string>Specify the root directory.--baseUrl <string>Base url of your file host.
Example Usage
generate distribution --root C:/TestRoot --baseUrl https://myhost.com
File Structure Setup (Tentative)
Nebula aims to provide users with an information preserving structure for storing files. The application will use this structure to generate a full distribution.json for HeliosLauncher. For coherency, the distribution structure is modularized and encapsulated by a directory pattern. These encapsulations will be explained below. They can be generated manually or by using the commands documented above.
Distribution Encapsulation
The distribution object is represented by the main root. All command output will be stored in this directory. The structure is documented below.
Ex.
TestRootThe root directory which encapsulates the distribution.serversAll server files are stored in this directory.
Server Encapsulation
Server objects are encapsulated in their own folders. The name of the server's folder contains both its id and version.
Ex.
serversTestServer-1.12.2A server with id TestServer set to version 1.12.2.
The server directory will contain files pertaining to that server.
Ex.
TestServer-1.12.2filesAll modules of typeFile.forgemodsAll modules of typeForgeMod.litemodsAll modules of typeLiteMod.TestServer-1.12.2.pngServer icon file.