EnigmaticaModpacks / Enigmatica9

The official repository and issue-tracker for Enigmatica 9
35 stars 59 forks source link

Swap out InstanceSync for Cat-Downloader-Legacy #659

Open Kanzaji opened 9 months ago

Kanzaji commented 9 months ago

What is even Cat-Downloader-Legacy?

This PR was discussed on the Contributor channel, so for those that are out-of-topic and are curious, here is an explanation 😄 Cat-Downloader-Legacy is an app that is meant to be a replacement of InstanceSync, the old app Vazkii wrote a long time ago, and was archived not so long ago by him. InstanceSync (And Cat-Downloader-Legacy) are meant to allow easy synchronization of the mods between modpack developers and beta-testers, without doing releases on CurseForge or hoping CF App will update mods correctly when instance file is changed :D It also has some more features, but more on that later.

Source code for the app

Source code of the app: https://github.com/Kanzaji/Cat-Downloader-Legacy Release included in this PR: https://github.com/Kanzaji/Cat-Downloader-Legacy/releases/tag/2.1.2 The Project is under a MIT License, (And its mine😄) so licensing here is not a problem :D But better to mention that anyway.

Configuration

This PR contains everything related to setup of CDL, with scripts, app itself and .gitignore file changes. There is a lot more possible to configure, however defaults are pretty good already, and everything can be changed in just one line :D Here is the explanation of the arguments used in the scripts of this PR:

Note: Those explanations are pretty short ones, better explanation is here and here.

Scripts are created in a way to make changing argumentation fairly easy. There is a tiny tiny bug in the Config generation, that single \ characters break Settings File Parsing, however I'm working on the fix now, and when the update is ready, the app will be updated! (PR Can be merged even before the fix, scripts are created so it will work fine, and the app will update iself when new release is ready)

Features

CDL contains a lot more features comparing to the InstanceSync, everything is configurable and the app will log everything when it crashes :D Here is the full list of the features that can be disabled / configured if not stated otherwise:

Few notes:

Darkere commented 9 months ago

Does this work on linux and from pure commandline?

Kanzaji commented 9 months ago

souliboi from our server tested the app out on Linux, and it appears to work fine there as well :D And yes, if you want to, the app can be configured to not create any files except mod files, redirecting logger output to the console, and using default values for the configuration options (or any that are put in the arguments)

java -jar Cat-Downloader-Legacy.jar -Settings:false -Logger:false will launch the app without creating log file nor Settings file :D (If that is what you meant by pure commandline)

Souliboi commented 9 months ago

sips tea image Cat-Downloader.log

the vim command was just to verify the stock settings applied, kanz might want to change the commented section for the modes to be appropriate if the modes are case-sensitive so people know exactly what to enter

oh yeah and my java path wasn't actually set so dw about me having to manually dig out the binary, a script can probably handle that much better.

Kanzaji commented 9 months ago

Yea they were meant to be case-insensitive, however I forgot to lower-case them when I save them to the ARD... so thats a thing I need to fix 😅

NielsPilgaard commented 9 months ago

I've been thinking about this change, and I've come to the conclusion that I don't want to break people's existing instance sync setups by introducing it now. I'd like to wait until the next Enigmatica modpack.

We're keeping this PR open for anyone who wants to make the switch to CDL themselves.

Lgmrszd commented 1 month ago

I'll ask here since it's related: was usage of tools such as packwiz has been considered for future modpacks? It works in command line and supports CF export, as well as auto-updating instances in PrismLauncher / MultiMC. Unfortunately though it might not work with CF app.

Edit: FYI, two major advantages of packwiz that I think are important are, ability to add/update/remove mods from the pack (my understanding is that with InstanceSync, this is only possible when using Official CurseForge launcher), and a better structure of pack file, which is easier to check when simply viewing it and it makes sensible diffs in git.