portablemc

A fast, reliable and cross-platform command-line Minecraft launcher and API for developers. Including fast and easy installation of common mod loaders such as Fabric, Forge, NeoForge and Quilt.

GPL-3.0 License

Downloads
1.1K
Stars
296
Committers
10

Bot releases are hidden (Show)

portablemc - Version 2.2.1 - Forge addon and various fixes

Published by mindstorm38 almost 3 years ago

Changes:

  • New forge addon to install and run forge directly via the command line (#29).
  • Extract HTTP part from json_request method to a common http_request function and added it to __all__.
  • Added new replacement variables that seems supported by official launcher and used by forge installed metadata.
  • When preparing version libraries, libraries with no URL are now defaulting to libraries.minecraft.net maven server.

Fixes:

  • Fixed pretty logging file not being created if original one is not downloaded. The only issue is that no login configuration was loaded.
  • Fixed a critical error in DownloadList.download_files() when non-OK HTTP status code was returned.

Download and install:

To install PortableMC, please read this repository README, the single-file script is available below in the portablemc-single archive.

portablemc - Version 2.2.0 - Indirectly fixed log4j exploit (please update)

Published by mindstorm38 almost 3 years ago

Changes:

  • Version manifest is now cached locally.
  • Versions metadata files are now updated if a newer version is provided by Mojang.
  • A new global argument is available --timeout <seconds> is available to change how the launcher (and addons) should handle timeout on some requests. Launcher and addons are free to use or not this argument.

Fixes:

  • Log4j exploit fixed indirectly from changes of the version manifest management (#52).

Download and install:

To install PortableMC, please read this repository README, the single-file script is available below in the portablemc-single archive.

portablemc - Version 2.1.0 - Fixes and improved add-on API

Published by mindstorm38 almost 3 years ago

Changes:

  • Improved print_table API in CLI module, now considering terminal width to avoid overflowing and reducing columns width in such cases, also adding ellipsis to the cell's text.
  • Improved add-on API, now possible to import portablemc and portablemc.cli directly from add-ons. Add-ons should now define all functions/classes directly in the module, and no longer the load() function. This works for both PIP-installed and single-script versions of PMC. All add-ons have been updated.
  • Added an API documentation.
  • New function get_addon_mod in CLI module to directly get the module of an add-on by its name.
  • The constructor of AuthSession no longer requires the legacy_filename argument, none by default.
  • Moved the old fix (betacraft proxy and legacy merge sort) from archives add-on to the core API, the --no-old-fix argument has been moved.
  • In archives add-on, now updating archives metadata id to the real name of the version's directory.
  • In fabric add-on, now adding an empty jvm arguments into the generated version metadata.

Fixes:

  • Fixed broken deterministic username and UUID (#50, thanks @intact).
  • Fixed non-existing fields when fixing authentication database, with Yggdrasil in particular (#49, thanks @Ristovski).
  • Fixed MicrosoftAuthSession.authenticate_base to handle error in Microsoft OAuth request in case of token refreshing with an invalid token.
  • Fixed a potential issue with DownloadList.reset(), count and size were not reset to 0.
  • Fixed a potential issue with executable permission definition in JVM download callback.

Download and install:

To install PortableMC, please read this repository README, the single-file script is available below in the portablemc-single archive.

portablemc - Version 2.0.6 - Modrinth addon and small fixes

Published by mindstorm38 almost 3 years ago

Added:

  • Modrinth addon in beta version (see README and help command using portablemc modr -h).
  • A format_number function in the CLI used to add suffixes (k, M, G) to a number to shorten it), the format_bytes function now use it.
  • A ellipsis_str function to add ellipsis to a string if it exceeds a given size.

Changed:

  • UUID and username are now deterministic if not specified in the command line (#46).
  • When actually download a DownloadList, entries with no size are updated with the downloaded size after downloaded, it allows seeing the real total downloaded size after a download.

Download and install:

To install PortableMC, please read this repository README, the single-file script is available below in the portablemc-single archive.

portablemc - Version 2.0.5 - Critical JVM fix

Published by mindstorm38 about 3 years ago

Fixed:

  • Launcher can now be launched with automatic JVM downloading in a non-existing main-directory (#45).

Download and install:

To install PortableMC, please read this repository README, the single-file script is available below in the portablemc-single archive.

portablemc - Version 2.0.4 - JVM integrity check and 1.18 support

Published by mindstorm38 about 3 years ago

Fixed:

  • When using portablemc login [...] sub command with a non-existing working directory, this directory is now created.
  • No longer crashing when a specific version manifest is using an unknown replacement variable in arguments.

Added:

  • Now supporting newer clientid and xuid replacement variables and arguments for 1.18 version manifests (#41).
  • Added support for a PMC_ADDONS_PATH environment variable that can be used to specify multiple directories where to include add-ons. To specify multiple directories, use an adequate path separator (; for windows, : for unix). You can check add-ons directories using portablemc addon dirs.

Changed:

  • When using Mojang Java Virtual Machine (JVM), the JVM's manifest is now cached and used on each launch to check integrity of the JVM installation (#33, thanks @GoodDay360).

Download and install:

To install PortableMC, please read this repository README, the single-file script is available below in the portablemc-single archive.

portablemc - Version 2.0.3 - Fixed critical issue that prevented offline launch

Published by mindstorm38 about 3 years ago

Fixed:

  • The launcher is now usable in offline mode, the version metadata file is now loaded only if needed (for example if you specify no version, or alias version such as release or snapshot, in these cases the launcher requires an internet connection).
  • Fixed encoding comment from # encoding: utf8 to # encoding: utf-8, this was crashing with my python 3.6 install.
  • Typo for internal errors.

Changed:

  • JVM version is no longer fetched on each launch, now this is only fetched when the java (unix) or javaw.exe (win) executables are missing from the JVM installation.
  • Improved the error message for socket errors to be more understandable.

Download and install:

To install PortableMC, please read this repository README, the single-file script is available below in the portablemc-single archive.

portablemc - Version 2.0.2 - Fixed critical Microsoft session issue

Published by mindstorm38 about 3 years ago

Fixed:

  • Fixed a critical issue for Microsoft session refreshing, it's also important to note that Microsoft authentication is now actively tested at least for my personal account.
  • Fixed encoding comment in python file from utf8 to utf-8 because of an issue with python 3.6 (at least).

Changed:

  • Added a warning when using -m (--microsoft) without -l (--login) on start sub command (#31).
  • Improved README.

Download and install:

To install PortableMC, please read this repository README, the single-file script is available below in the portablemc-single archive.

portablemc - Version 2.0.1 - Internal code rework and PIP installation

Published by mindstorm38 about 3 years ago

Changed:

  • Fixed issues when any file fails to download in a list of files to download, now handling connection resets. (#27, thx @ayunami2000).

Download and install:

To install PortableMC, please read this repository README, the single-file script is available below in the portablemc-single archive.

portablemc - Version 2.0.0 - Internal code rework and PIP installation

Published by mindstorm38 about 3 years ago

Changed:

  • Huge internal reworks with separated CLI and API scripts (#22).
  • Added recursion limit when resolving metadata parents.
  • Add-ons coderpack and scripting were removed and add-ons richer was renamed to console, and fabric add-on was renamed to fabric.
  • Add-ons can now be loaded from multiple directories, a new command was added to list these directories.
  • Poetry is now used to manage the project dependencies, build it and distribute it to PyPI.

Added:

  • Argument --anonymise to start sub command in order to partially hide the email in output.
  • Add-on archives to start older version from Omniarchives' archives.

Download and install:

To install PortableMC, please read this repository README, the single-file script is available below in the portablemc-single archive.

portablemc - Version 1.1.4 - Microsoft authentication and lot of fixes

Published by mindstorm38 over 3 years ago

Added:

  • Microsoft authentication is now supported through the -m argument for authentication-related commands, check README for more information (#13).
  • When omitting the --jvm argument, an official Java version is installed and run the game (distributed by Mojang).
  • Added a LICENSE, also added to the script header (#9).

Changed:

  • Game start sequence now append all files to download to a list, and all files are downloaded at the end. The downloading algorithm has been reworked to be more efficient. The installation time of the game is at least 2 times faster than previous versions (#16, thanks @Ristovski).
  • Command argument --work-dir is now available in the main command instead of start subcommand (#11).
  • Runtime binaries and authentication tokens are now stored in working directory (#11).
  • The output has been reworked to be more concise when starting. This output type is called "task-output" and looks like systemd startup terminal. This output is also used for login and logout sub commands.
  • Error handling is now better than before and fits better in the "task-output".
  • Fabric now support empty Minecraft version (to run the latest version) and version aliases like "release" or "snapshot".
  • Fixed issue when downloading assets or libraries with unknown size (#14).
  • Authentication database has been reworked to be more maintainable through versions and to support Microsoft authentication (#13).
  • Improved README and general documentation.
  • The scripting package is no longer distributed as it need too much work to test against newer launcher versions, and is reversed for specific needs.
  • Fabric add-on now use newer JSON request methods.
  • Some messages were changed for help texts.
  • Updated re-exports for add-ons in PortableMC class to include CorePortableMC.

Available packages to download (below):

  • portablemc_1.1.4_standard.zip: The standard one-script launcher
  • portablemc_1.1.4_richer.zip: Standard PortableMC with the "richer" extension, this extension adds better progress bar for downloads and a command line application for the game's process output
  • portablemc_1.1.4_modloaders.zip: Same as richer package with additional add-ons for each supported mod loaders (currently, only FabricMC is supported and is properly working)
portablemc - Version 1.1.4 Pre Release 2 - Better output

Published by mindstorm38 over 3 years ago

Changed:

  • Game start sequence now append all files to download to a list, and all files are downloaded at the end. The downloading algorithm has been reworked to be more efficient. The installation time of the game is at least 2 times faster than previous versions (#16, thanks @Ristovski).
  • The output has been reworked to be more concise when starting. This output type is called "task-output" and looks like systemd startup terminal. This output is also used for login and logout sub commands.
  • Error handling is now better than before and fits better in the "task-output".
  • Fabric add-on now use newer JSON request methods.
  • Some messages were changed for help texts.

How to contribute:

This version is a pre-release, you might encounter many bugs. To report issues, create an issue on the issues board. If this problem is related to upcoming features or fixes, please comment in the related issue thread. Thank you for your support!

Available packages to download (below):

  • portablemc_1.1.4-pre2_standard.zip: The standard one-script launcher
  • portablemc_1.1.4-pre2_richer.zip: Standard PortableMC with the "richer" extension, this extension adds better progress bar for downloads and a command line application for the game's process output
  • portablemc_1.1.4-pre2_modloaders.zip: Same as richer package with additional add-ons for each supported mod loaders (currently, only FabricMC is supported and is properly working)
portablemc - Version 1.1.4 Pre Release 1 - Microsoft authentication and lot of fixes

Published by mindstorm38 over 3 years ago

Added:

  • Microsoft authentication is now supported through the -m argument for authentication-related commands, check README for more information (#13)
  • When omitting the --jvm argument, an official Java version is installed and run the game (distributed by Mojang)
  • Added a LICENSE, also added to the script header (#9)

Changed:

  • Command argument --work-dir is now available in the main command instead of start subcommand (#11)
  • Runtime binaries and authentication tokens are now stored in working directory (#11)
  • Fabric now support empty Minecraft version (to run the latest version) and version aliases like "release" or "snapshot"
  • Fixed issue when downloading assets or libraries with unknown size (#14)
  • Authentication database has been reworked to be more maintainable through versions and to support Microsoft authentication (#13)
  • Improved README and general documentation
  • The scripting package is no longer distributed as it need too much work to test against newer launcher versions, and is reversed for specific needs

How to contribute:

This version is a pre-release, you might encounter many bugs. To report issues, create an issue on the issues board. If this problem is related to upcoming features or fixes, please comment the related issue thread. Thank you for your support!

Available packages to download (below):

  • portablemc_1.1.4-pre1_standard.zip: The standard one-script launcher
  • portablemc_1.1.4-pre1_richer.zip: Standard PortableMC with the "richer" extension, this extension adds better progress bar for downloads and a command line application for the game's process output
  • portablemc_1.1.4-pre1_modloaders.zip: Same as richer package with additional add-ons for each supported mod loaders (currently, only FabricMC is supported and is properly working)
portablemc - Version 1.1.3 - A few fixes

Published by mindstorm38 over 3 years ago

Changed:

  • Fixed wrong percentage for global progression of assets download (#8, thank you, @ayunami2000)
  • Improved the message when a python module is required by an addon but not installed, the new message suggest to use pip install ....

Available packages to download (below):

  • portablemc_1.1.3_standard.zip: The standard one-script launcher
  • portablemc_1.1.3_richer.zip: Standard PortableMC with the "richer" extension, this extension adds better progress bar for downloads and a command line application for the game's process output
  • portablemc_1.1.3_modloaders.zip: Same as richer package with additional add-ons for each supported mod loaders (currently, only FabricMC is supported and is properly working)
  • portablemc_1.1.3_scripting.zip: A work-in-progress remote java reflection add-on for live interaction with Minecraft through a Python API
portablemc - Version 1.1.2 - FabricMC support

Published by mindstorm38 over 3 years ago

Solved:

  • Small fix with working directory

Added:

  • Worked on a coderpack add-on used to decompile Minecraft using official mappings
  • Added a modloader_fabric add-on used to download and start fabric mod loader automatically

Available packages to download (below):

  • portablemc_1.1.2_standard.zip: The standard one-script launcher
  • portablemc_1.1.2_richer.zip: Standard PortableMC with the "richer" extension, this extension adds better progress bar for downloads and a command line application for the game's process output
  • portablemc_1.1.2_modloaders.zip: Same as richer package with additional add-ons for each supported mod loaders (currently, only FabricMC is supported and is properly working)
  • portablemc_1.1.2_scripting.zip: A work-in-progress remote java reflection add-on for live interaction with Minecraft through a Python API
portablemc - Version 1.1.1 - Fix for standard package

Published by mindstorm38 over 3 years ago

Solved:

  • Fixed critical failure if no addons directory

Available packages to download (below):

  • portablemc_1.1.1_standard.zip: The standard one-script launcher
  • portablemc_1.1.1_richer.zip: Standard PortableMC with the "richer" extension, this extension adds better progress bar for downloads and a command line application for the game's process output
  • portablemc_1.1.1_scripting.zip: A work-in-progress remote java reflection add-on for live interaction with Minecraft through a Python API
portablemc - Version 1.1.0 - Addons support and full rewrite

Published by mindstorm38 over 3 years ago

First release of the fully rewrote PortableMC, with official add-ons support.

Major changes:

  • Full rewrite (this remains a single file script!)
    • Despite this rework, the session storage is compatible with the old launcher
  • Brand-new command line arguments
  • Optional add-ons support, with two official add-ons named "richer" and "scripting", with add-ons the launcher is obviously no-longer one-script based, but that's up to you!
  • Official release packages, available to download just below \/ \/

Available packages to download (below):

  • portablemc_1.1.0_standard.zip: The standard one-script launcher
  • portablemc_1.1.0_richer.zip: Standard PortableMC with the "richer" extension, this extension adds better progress bar for downloads and a command line application for the game's process output
  • portablemc_1.1.0_scripting.zip: A work-in-progress remote java reflection add-on for live interaction with Minecraft through a Python API