Commit Graph

31 Commits

Author SHA1 Message Date
Daniel Scalzi
5f6c58d863 Upgrade to Node.js 20. 2024-02-22 10:49:07 -05:00
jebibot
76ab09a010 feat: support Fabric (#66)
* Initial scaffolding for Fabric.

* refactor: extract common ModStructure

* feat: add FabricModStructure

* refactor: add name field to VersionRepoStructure

* feat: FabricResolver

* feat: support Fabric

* docs: update README

* Small changes.

* Add additional note.

* Upgrade helios-distribution-types.

---------

Co-authored-by: Daniel Scalzi <d_scalzi@yahoo.com>
2023-12-03 17:37:14 -05:00
Daniel Scalzi
1a537e33f4 Allow setting the server icon via servermeta.json.
Closes #39 #44
2023-08-13 19:59:50 -04:00
Daniel Scalzi
340df4f2d0 Fix readme link. 2023-04-15 21:00:09 -04:00
Daniel Scalzi
08df292dde Update README for v2 changes. 2023-03-24 18:38:31 -04:00
Daniel Scalzi
6b2d9edf26 Add command to generate server from CurseForge modpack. 2023-03-18 17:26:35 -04:00
Daniel Scalzi
82967469e9 Node 18. 2023-02-12 19:11:46 -05:00
Daniel Scalzi
2f143d74a7 Drop support for LiteLoader.
Liteloader is obsolete and abandoned. It is not worth the hassle of maintenance.
2022-02-04 19:17:17 -05:00
Daniel Scalzi
e97ac9bfad Upgrade to Node.js 16. 2021-10-31 02:38:16 -04:00
Daniel Scalzi
b0f0f02cf9 Update Java executable example in README due to AdoptOpenJDK name change. 2021-10-13 13:42:23 -04:00
Daniel Scalzi
57c376e78c Add note about Java 16. 2021-06-30 20:15:21 -04:00
Daniel Scalzi
b1196dbb3e Dependency upgrade. 2021-06-11 22:47:44 -04:00
Daniel Scalzi
bc3367af28 Dep upgrade. 2021-04-27 20:05:40 -04:00
Daniel Scalzi
3f90a22972 Add output caching for Forge 1.13+.
CHANGES
 - Forge installer is no longer stored to the work directory. It is now stored in a cache folder corresponding to the artifact version.
 - Installer output is now cached by default
 - Added options to generate distro.
   - --discardOutput Delete cached output after it is no longer required. May be useful if disk space is limited.
   - --invalidateCache Invalidate and delete existing caches as they are encountered. Requires fresh cache generation.
   - Both options are false by default.
 - To invalide a single version, manually delete the folder.
 - Old functionality is essentially g distro --discardOutput --invalidateCache.
2021-03-20 16:28:12 -04:00
Daniel Scalzi
07ea0e8b98 Update dependencies. 2021-03-07 10:51:51 -05:00
Daniel Scalzi
5c9e44db91 Alias to run the project without building. Dependency upgrade. 2021-02-19 17:41:36 -05:00
Daniel Scalzi
0d46a529fc Node 14, dependency upgrade.
Node 14 is now LTS, so we'll use that.
2020-11-01 17:22:53 -05:00
Daniel Scalzi
42e47f4748 Add JSON schemas for DistroMeta and ServerMeta.
JSON schemas are used by editors to validate data and provide useful insights.
The JSON schemas will be generated by the init root command. They can also be generated
using the generate schemas command.

The JSON files will reference the schemas on the user's local disk rather than hosted versions.
This allows offline editing and ensures that the schema is exactly one-to-one with the local
version of Nebula.

Existing servers will have to manually add the schema property. To see how to do this, generate
a new server and copy the $\schema value.
The schema property will need to be added to any existing distrometa files. This is the same
format as the server meta, just replace ServerMeta with DistroMeta.

More information, including sample files with json schemas, is provided
on the README.
2020-09-13 01:06:50 -04:00
Daniel Scalzi
24b0923903 Add support for untracked files.
Untracked file glob patterns are stored in the servermeta.json. See the README for detailed information.
2020-09-12 22:46:50 -04:00
Daniel Scalzi
8e611175ca Add support for optional vs required modules.
Directories representing toggleable modules are now segemented into three subdirectories.

* `required` Modules that are required.
* `optionalon` Modules that are optional and enabled by default.
* `optionaloff` Modules that are optional and disabled by default.

Filter your files into these three directories. Files at the root directory will no longer be processed. Currently, forgemods and litemods are the only toggleable modules.

For existing servers, just manually create these directories and move your files inside either of them. Generating a new server will automatically create them.
2020-07-05 13:51:49 -04:00
Daniel Scalzi
bac2480c1b Add option to install a generated distro to the local Helios data folder
* Run g distro with --installLocal to have the generated file be copied into the local helios data folder.
* New property required in the .env, HELIOS_DATA_FOLDER
* Added two launch configurations to vs code.
2020-06-29 18:07:46 -04:00
Daniel Scalzi
151ad481ad Update README.md. 2020-06-04 19:13:51 -04:00
Daniel Scalzi
afcae366b5 Added basic library discovery.
Put all libraries into the libraries folder at the root of your server directory.
These will be added to the distribution as Library modules. Recall, Library modules
are added to the client's classpath at runtime.
2020-05-19 21:52:41 -04:00
Daniel Scalzi
54cc93d499 Implement recursive scan for File modules.
Ex. store resourcepacks at /files/resourcepacks/MyPack.zip
Added as a module with destination path resourcepacks/MyPack.zip
2020-02-02 17:30:53 -05:00
Daniel Scalzi
8911f54039 Automatic resolution of latest and recommended forge builds.
You can now use 'latest' or 'recommended' as the forge version option in the generate commands.
Two new commands are provided to query the latest/recommended version of forge.
2020-01-19 15:40:52 -05:00
Daniel Scalzi
083c878a2d Fix bug with artifact id resolution. 2020-01-18 12:08:33 -05:00
Daniel Scalzi
b4bef1b258 Update docs.
Leaving root and baseURL docs for now incase I decide to keep that functionality.
2020-01-12 07:30:08 -05:00
Daniel Scalzi
9e420db907 Propagate baseURL to resolved forge modules. 2020-01-12 06:20:23 -05:00
Daniel Scalzi
21d80fef82 Integrate with PackXZExtract to support pack.xz libs.
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.
2020-01-12 05:27:35 -05:00
Daniel Scalzi
d2981c300a Dependency upgrade, add tentative usage.
Mainly including the usage so that I don't forget how it works after not working on it for months.
2019-12-20 05:07:45 -05:00
Daniel Scalzi
68e09fbac7 Initial commit 2019-07-28 13:55:51 -04:00