BramStoutProductions / MiEx

A modern Minecraft Exporter
BSD 3-Clause "New" or "Revised" License
61 stars 9 forks source link

Not depend on .minecraft Directory #4

Closed OfficialCRUGG closed 7 months ago

OfficialCRUGG commented 7 months ago

After failing to get MiEx to run on macOS, I tried it on Windows and ran into another issue: MiEx seems to fully depend on a .minecraft Folder existing, and I don't have the official Minecraft installed, since I almost exclusively use Prism Launcher (as that makes it easier to deal with separate instances) So it would be great, if MiEx could run without one directly present. The version_manifest_v2.json should be available on Mojang's Servers (which you could fall back to if none is present) and for anything else (such as assets), you could just let the user specify a path to a Minecraft Instance.

BramStout commented 7 months ago

I have just released a new version which should now allow you to tell it where the "versions" folder it that has all of the Minecraft version installs. This should then also allow it to work with other launchers. It will now also work without any Minecraft install, but you would then need to manually create the base_resource_pack so that MiEx does still have access to the different block states, block models, biomes, etc.

https://github.com/BramStoutProductions/MiEx/releases/tag/v1.2.1

The MIEX_MINECRAFT_VERSIONS_DIR environment variable or the -mcVersionsDir <path> argument allows you to tell MiEx where all of the versions are located.

You can read more about it here: https://github.com/BramStoutProductions/MiEx/wiki/3.-Pipeline-Integration-and-Customisations

Please let me know whether this works!

OfficialCRUGG commented 7 months ago

So, e.g. Prism Launcher (and MultiMC, which it is a fork of) actually doesn't have a versions Directory at all. You have the PrismLauncher folder which has all the Instances, which then each have a .minecraft, but no versions in each of them.

BramStout commented 7 months ago

Aaah, I didn't know that. The versions folder is only needed in order for MiEx to extract the base_resource_pack from the Minecraft jar file. You can also do this manually. Just extract the assets and data folders from inside the jar file (you can open it up as a zip file) into the base_resource_pack folder. Then also create another file called packInfo.json inside of the base_resource_pack folder to tell MiEx that you have already set up the base_resource_pack yourself. In that packInfo.json file put the following text {"version":"1.20.4"}

Please let me know if this works for now and I'll look in the future whether I can add in support for different Minecraft launchers.

BramStout commented 7 months ago

MiEx now has support for alternative launchers. All that you have to do is tell it where the root directories of these launchers are via environment variables or command-line arguments. You can find out more about it here: https://github.com/BramStoutProductions/MiEx/wiki/3.-Pipeline-Integration-and-Customisations#environment-variables

You can get the latest version of MiEx with this feature here: https://github.com/BramStoutProductions/MiEx/releases/tag/v1.4.0

One quick note, I just noticed that there is a small mistake in the code where the MIEX_MODRINTH_ROOT_DIR environment variable won't do anything, because it's instead looking at the MIEX_TECHNIC_ROOT_DIR environment variable for the Modrinth root directory. This will get fixed in the next release planned for tomorrow.