Minecraft Console Launcher
Go to file
2024-12-21 18:23:56 +04:00
build Version set to 0.1.4. 2024-12-17 19:48:03 +04:00
cmd/mccl Fix to use a natives dir of an inherited game version. 2024-12-21 18:23:56 +04:00
internal Added library deduplication in IneritFrom. 2024-12-14 18:00:34 +04:00
pkg Fixed crosscompilation by adding build tags at the beginning of the files. 2023-12-09 19:25:29 +04:00
.gitignore I think it's time to init a repo already. xD 2023-10-30 02:18:41 +04:00
go.mod I think it's time to init a repo already. xD 2023-10-30 02:18:41 +04:00
go.sum I think it's time to init a repo already. xD 2023-10-30 02:18:41 +04:00
Makefile Version set to 0.1.4. 2024-12-17 19:48:03 +04:00
README.md Add a README.md. 2023-10-30 02:57:45 +04:00

mccl

Which stands for Minecraft Console Launcher.

As a fellow pirate I got tired of that there are no vanilla builds on torrents. After a very short research I found I can just download everything directly from Mojang without authorization. xD

So I wrote this launcher... :)

It can install only vanilla game, mod launchers should be installed using theirs installers. But, after some testing and fixes (fixes for Forge), it can run Forge, Fabric, and Quilt. I know there are other mod launchers as well, but I didn't test them.

There's still a lot of work left.

Since I don't have a Mac or Hackintosh I cannot handle MacOS properly. Rules should probably work though.

Using

    mccl install|i version directory
    mccl run|r version directory [-u User] [-U UUID] [--java-Xmx 4G] [--profile]
    mccl list|l directory

version is game version like 1.20.2 or 23w43b. Or it can be [latest-]release or [latest-]snapshot to install respectively a freshest release or snapshot version.

directory is a root path where all game files will be installed to, or runned from, or listed.

-u,--username is a player's in-game username.

-U,--uuid is a UUID of your account. Even though this launcher doesn't perform an authorization, passing your username and account's UUID will still load your skin.

--profile tells to load a mccl_profile.json if it exists or store passed (or theirs defaults otherwise) --username --uuid and --java-Xmx. Once stored, you can omit -u, -U, and --java-Xmx, and just pass --profile, and it will load your username, UUID and a maximum heap size.

TODO

  • Rewrite LocateJavaHome for Linux so that it will actually search for an existing Java installation.
  • Implement uninstall|u command. It is not easy, since I must look through all installed versions what assets and libraries are used. Btw, I think it will be good if in case of removing of a vanilla version all mod loaders for that version should be removed as well. Make that a default behaviour and introduce a flag that disable it.