Skip to content

Latest commit

 

History

History
138 lines (115 loc) · 15.9 KB

README-en.md

File metadata and controls

138 lines (115 loc) · 15.9 KB

Console Minecraft Launcher (Kotlin)

A Command-line Minecraft Java Edition Launcher written in Kotlin

Latest Version Release Date Software Requires

🎬 Video Tutorial

Chinese: [CMCL2.0]命令行版MC启动器, 支持正版登录|外置登录|统一通行证|模组/整合包搜索安装|自定义皮肤披风
If you still have any problems after watching the video or using it, you can refer to Troubleshooting or ask the author through the author's contact information found in About Author.

📕 Tutorial

  • If your operating system is Windows, you can download cmcl.exe in Releases, then open cmd, use cd /d <directory path> to open the directory where cmcl.exe is located, and execute the command cmcl , followed by options and parameters. If you want to use CMCL in any directory, please refer to "How to use CMCL in any path?" in Troubleshooting.
  • If you are a Linux or macOS user, you can find the latest version in Releases, download cmcl, and then open the directory where cmcl is located in the terminal, execute . /cmcl, followed by options and parameters.
  • If none of the above methods apply to you, you can find the latest version in Releases, download cmcl.jar, then open the directory where cmcl.jar is located in the terminal (or cmd under Windows), and execute the following command, Followed by options and parameters. This method is available on most operating systems.
java -jar cmcl.jar

For specific usage, please refer to Help Documentation. If you want to modify the configuration of the launcher, please refer to Configurations.

📖 Help Documentation

Get general help documentation via cmcl -h or cmcl --help
To get help documentation of a single function, add -h or --help after the function option, such as cmcl account --help
Note: Content in square brackets is optional. A comma in an option means that both options can do the same thing.
For specifying content for options, you can only add content directly after the abbreviated option (a hyphen) (no spaces), such as cmcl -lD:\.minecraft,
you can only add an equal sign after the complete option (two hyphens) and then enter the content, such as cmcl --list=D:\.minecraft,
or add a space after the two and then enter the content, such as cmcl -l D:\.minecraft; cmcl --list D:\.minecraft, for details, please refer to the example after the option description.
For some commands that may be entered frequently, you can set simplified commands, see "Can I make a 'shortcut' for a command I type often?" in Troubleshooting.

🔧 Configurations

The configurations are storing in a JSON file named cmcl.json in the launcher running directory (userDirectory/.config/cmcl under Linux and macOS), you can edit them by a file editor (need to know JSON tutorial, recommended to backup before modification) or the program arguments config <config name> <content> (see Help Documentation Configuration Related).
If you edit configurations by a file editor, the configuration name and text configuration content need to be enclosed in double quotes ("").
If you edit by command, if the configuration content contains spaces, it needs to be enclosed in double quotes ("").
You can view the table below through the options config --view.
Note: For configurations whose type is Boolean, its value can be true which means "yes", or false which means "no".

Configuration Name Type Meaning
accounts JSON Array Accounts (Non-direct modification, please use "account -h" to get the relevant tutorial for modification)
downloadSource Integer Download source, 0 is the official, 1 is BMCLAPI
language Text Language, zh is Simplified Chinese, en is English and cantonese is Cantonese (Simplified)
selectedVersion Text Selected start version, you can directly use "cmcl" to start it
maxMemory Integer [Game related] Maximum (Unit: MB)
gameDir Text [Game related] Custom the path of the game directory (or set working directory), default is .minecraft
assetsDir Text [Game related] Custom assets resource directory path, if empty, it is the assets directory in the game directory
resourcesDir Text [Game related] Custom resource pack directory path, if empty, it is the resourcepacks directory in the game directory
javaPath Text [Game related] Java Path (It will get automatically if it is empty)
windowSizeWidth Integer [Game related] The width of the game window
windowSizeHeight Integer [Game related] The height of the game window
isFullscreen Boolean [Game related] Whether the game window is fullscreen or not
exitWithMinecraft Boolean [Game related] When running the game, whether or not you need to exit the launcher and exit the game by the way
printStartupInfo Boolean [Game related] When starting the game, whether to output startup information (Java path, maximum memory, etc.)
checkAccountBeforeStart Boolean [Game related] Check whether the account is available before starting the game
jvmArgs JSON Array [Game related] Customize JVM arguments (Check out the examples below or use "jvmArgs -h" to get the relevant tutorial for modification)
gameArgs JSON Object [Game related] Customize game arguments (Check out the examples below or use "gameArgs -h" to get the relevant tutorial for modification)
qpLogFile Text [Game related] The log file path (relative to the game directory) of Quick Play (a new feature of Minecraft 1.20, set the following three configurations to start the game and directly enter the save, server or realms, only one item can be set), optional
qpSaveName Text [Game related] The name of the save that the quick play will join directly
qpServerAddress Text [Game related] The address (including port) of the server that the quick play will join directly, this configuration also applies to versions prior to 1.20
qpRealmsID Text [Game related] The ID of the realms that the quick play will join directly
proxyEnabled Boolean Whether to enable network proxy
proxyHost Text Proxy Host Address
proxyPort Integer Proxy Port
proxyUsername Text Proxy authentication username(optional for proxy)
proxyPassword Text Proxy authentication password(optional for proxy)
modDownloadSource Text Mod download source, curseforge or modrinth
modpackDownloadSource Text Modpack download source, curseforge or modrinth
simplifyCommands JSON Object Simplify commands (use "simplify -h" to get the relevant tutorial for modification)
Example for jvmArgs
["-Dfile.encoding=UTF-8", "-Djava.library.path=natives", "-XX:+PrintGC"]

The above content means that the JVM arguments -Dfile.encoding=UTF-8, -Djava.library.path=natives and -XX:+PrintGC will be added.

Example for gameArgs
{
  "fullscreen": "",
  "arg1": "value1",
  "arg2": "value2",
  "arg3": "space value3"
}

The above content means that the game arguments --fullscreen --arg1 value1 --arg2 value2 --arg3 "space value3" will be added.

🌏 Supported Interface Languages

Use cmcl config language <language code> to switch languages.

Language Language Code
English en
Simplified Chinese zh
Cantonese (Simplified) cantonese

©️ Copyright

MrShiehX owns the copyright of this program.
Anyone can take advices of this program to us.

📄 License

The software is distributed under GPL v3 with additional terms.

Console Minecraft Launcher (Kotlin)
Copyright (C) 2021-2024  MrShiehX

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your function) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <https://www.gnu.org/licenses/>.

📑 Additional terms under GPLv3 Section 7

You must not remove the copyright declaration displayed in the software. [under GPLv3, 7(b).]

📢 Disclaimer

  • The copyright of Minecraft belongs to Mojang Studios and Microsoft. The software producer is not responsible for any copyright issues arising from the use of CMCL. Please support the official game.
  • All consequences arising from the use of CMCL by the user shall be borne by the user himself. Any legal disputes and conflicts involving CMCL have nothing to do with the developer, and CMCL and the developer will not bear any responsibility.

🎓 About Author

MrShiehX

If you find any bugs in CMCL, or have new ideas, please leave a message on Bilibili or raise an issue.