Перейти к содержимому
Mineforgian

MCInstance Loader

A small mod that allows to install mcinstance files, a modpack format that can include overrides and download files.

253K загрузок20 подписчиковMITforge

Обновлён 2 декабря 2023 г. · опубликован 4 февраля 2022 г.

The mod logo.

GitHub Modrinth Curseforge Discord Ko-fi

A small mod to allow Minecraft to directly install a modpack in the .mcinstance format, a simplified distribution format for modpacks. It lets people download files, bundle overrides and much more. The game asks for a reboot after installation and disables the mcinstance file to let the game restart properly.

Will you port this mod to other versions too?

I'm not working on porting this mod yet, but this is planned. The goal is to provide the mcinstance format for as much people as possible.

I'm just starting with 1.7.10 for now, might port it when i feel the mod is ready.

You can also help port the mod by looking at the Github. After all, this is a MIT-licensed mod, so feel free to try and make a pull request to port it to any version you'd like (be it 1.3.2, 1.18, Forge, Fabric etc)

So basically what is the .mcinstance format?

The MCInstance format (.mcinstance) consists of a repurposed ZIP file, with a specfic layout inside, and containing things like .packconfig files which are very similar to the INI format. This mod aims to allow its installation inside the game so it can be used as a cross-platform modpack format. Support for it could also be added inside 3rd-party launchers to directly allow people to double click the file and install the pack.

Features

Here are some features included in both this mod and the format:

  • Bundle any file inside the overrides folder, just like other formats. Files there get copied to the minecraft root directory (usually .minecraft).

  • A carryover folder for modpack players. That way players can put any file in it, and they will get merged as well, overwritting what the pack might have downloaded/bundled before.

  • Download files from the internet (any URL) and save them anywhere in the minecraft folder.

  • API support for both Modrinth and Curseforge (with multiple modes in place if something fails).

  • Hash checks for downloaded files (SHA-512, SHA-256, SHA-1, MD5 or CRC32 for now)

  • A cache system for hashed files (if the file is downloaded from an API, it tries to grab the hashes from the API too), to not have to redownload everything after an update.

  • StopModReposts checks, to discourage the use of repost websites. This can be toggled off if needed.

  • Sided files, so you can only download certain files on server or on the client. Useful for GUI mods and what not.

  • A very flexible optional files system, with a menu in place, grouping support, multiple menus and multi-choice GUIs with a configurable amount of togglable items. (Client side for now, will have an implementation for servers later on)

  • A complete log system in place so you can easily check issues specific to this mod. Combined with a verbose option for Forge logs.

  • A togglable update checker, to keep this mod up-to-date.

  • Forge progressbar integration, displays a new progress bar in the loading screen, so people can see how many mods are left to be downloaded.

  • A customisable Info GUI that replaces the main menu, to notify the user of errors or successs. This is to make sure that people restart the game and correctly load mods that might've been added. Supports an auto-quit timer, a custom success message or any mod that changes the menu (a list of classes can be set)

  • Automatic pack.mcinstance disabling after success, with the possibility to delete the file, or disable that feature instead. This is necessary to let people play the game after a succesful install.

So how do i use it?

Check out the wiki pages to learn more about this mod and the mcinstance format.

Credits & licensing

Licensing:

Even though this mod is distributed under MIT, this license doesn't apply to any file in the net.lingala.zip4j package, as this is the source code for the zip4j library, and only distributed here for ease of use. The zip4j library is licensed under the Apache License 2.0 and the version bundled here is the 2.9.1 release.

Credits:

  • Srikanth-lingala for creating the zip4j library, which this mod uses.
  • AstroTibs for making OptionsEnforcer which i got inspired by.
  • Janrupf and HansWasser for creating ModDirector which inspired this mod too.

Версии

ВерсияКаналИграЗагрузчикиДатаСкачать
2.7Релиз1.7.10forge2 декабря 2023 г..jar (333 КБ)
2.6Релиз1.7.10forge8 марта 2023 г..jar (331 КБ)
2.5Релиз1.7.10forge14 декабря 2022 г..jar (333 КБ)
2.4Релиз1.7.10forge2 сентября 2022 г..jar (328 КБ)
2.3Релиз1.7.10forge23 августа 2022 г..jar (328 КБ)
2.2Релиз1.7.10forge5 августа 2022 г..jar (328 КБ)
2.1Релиз1.7.10forge15 июля 2022 г..jar (325 КБ)
2.0Релиз1.7.10forge2 июля 2022 г..jar (325 КБ)
1.0Релиз1.7.10forge4 февраля 2022 г..jar (307 КБ)

Ченджлог

2.7Релиз1.7.10 · 2 декабря 2023 г.

Here's (hopefully) the last update before 3.0.

New features

  • Added support for HTTP proxies, this might fix issues with VPNs getting ignored (courtesy of @GlodBlock)
  • Added an option to ignore the HTTPS certificate check, for launchers which may break the certificates list somehow (courtesy of @DrParadox7)

Feature changes and fixes

  • Reworked the retry system for failed downloads, now allows a configurable amount of retries.

Technical changes

  • A few changes and cleanups in the codebase
  • Bumped version number to 2.7
2.6Релиз1.7.10 · 8 марта 2023 г.

Here is a small update before 3.0 to fix compatibility issues with custom main menus from mods.

Feature changes and fixes

  • Fixed the mod not working with certain mods loaded
  • Rewrote the main menu GUI detection code to be cleaner and more stable
  • Removed the gui class path config (since it's no longer needed)

Technical changes

  • Refactored some code internally to prepare for 3.0
  • Bumped the version number to 2.6
  • Updated the Zip4J library to 2.11.5
2.5Релиз1.7.10 · 14 декабря 2022 г.

Here is a surprise update before christmas :D Most of the additions were done by @DrParadox7 on Github via a pull request.

Feature changes and fixes

  • Added sided overrides, you can now create a client-overrides or a server-overrides folder that contains files to override only when on a specific side. (This feature was initially planned for 3.0)
  • The server will now shutdown correctly after the mcinstance file has been installed or when the installation has failed.
  • Fixed the mod deleting subfolders in the mods folder, as it thought those were always empty.
  • Reworked the logs when on a server, servers now clearly see when a mod gets downloaded and that the server restarts and doesn't crash.

Technical changes

  • Bumped the version number to 2.5
  • IOExceptions from the WebHelper class will also print their stack trace
  • IOExceptions from the FileHelper class won't get printed twice anymore
2.4Релиз1.7.10 · 2 сентября 2022 г.

Feature changes and fixes

  • The info screen no longer can be exited of by pressing escape (the timer would've caused issues anyways)
  • Fixed the mod overwriting folders (and deleting the files it could)
  • Fixed the mod adding resources from the wrong side to the download list
  • Fixed the mod not using the URL given by the curseforge API if the generated URL is invalid.
  • Fixed the mod not ignoring invalid properties in the optional.packconfig file.

Technical changes

  • The FileHelper.copy method will now overwrite an existing file with a 0-byte file instead of trying to delete it
  • The FileHelper class will now try to use its own methods in more places.
  • The PackConfigParser.parseResources method will not return resources that shouldn't be downloaded on the current side anymore
  • The parsing of the side property for resources has been redone to accomodate the change above.
  • Bumped the version number to 2.4
2.3Релиз1.7.10 · 23 августа 2022 г.

Feature changes and fixes

  • Fixed a crash that happened when the config directory wasn't created.
  • Fixed an infinite recursion that happened when an IOException occured when downloading a file.

Technical changes

  • IOExceptions that happen from a method in the FileHelper class will now print their stacktrace in the game's logs
  • Bumped the version number to 2.3
2.2Релиз1.7.10 · 5 августа 2022 г.

Feature changes and fixes

  • Made the confirm button display a downloading text on the optional resources page (untested).
  • Added the translation for the previous text.
  • Fixed the version number being incorrect in the previous build (which broke the update checker)
  • Made IOExceptions try again once, after 1 second. This should fix (or at least negate) the Curseforge launcher breaking the mod by doing weird stuff with the jar files.

Technical changes

  • Reorganized certain functions
  • Rewrote some function comments to be javadocs instead.
  • Cleaned up the code base a little
  • Bumped the version number to 2.2
2.1Релиз1.7.10 · 15 июля 2022 г.

Feature changes and fixes

  • Fixed a crash on servers caused by the missing Apache HTTP library. (Why Mojang, why only include a common web library on clients? )
  • Fixed an error that could happen when trying to follow a link with a full URL in it and not just a file name
  • Removed the empty follow URL error (It was useless anyways)

Technical changes

  • Rewrote the WebHelper class again to not use the Apache HTTP library. (Performance should be more or less the same)
  • Removed forgotten debug prints while loading the config file.
2.0Релиз1.7.10 · 2 июля 2022 г.

New features

  • Added the pack folder system, to automatically build the pack.mcinstance file if it's missing.
  • Added a template layout in this folder by default.
  • Added the hash-based cache system, to not have to re-download the same file everytime there's a pack update (can be disabled).
  • Added the optional resources system. Supports grouping, menus, multiple options to check at once and much more (Check out the wiki) [Currently only for the client side]
  • Added an update checker with multiple modes, including automatic installation.
  • Added a zero-byte files deleting system for the mods folder. It will delete any empty file in there.

Feature changes and fixes

  • Changed the overrides/carryover to only merge and not replace folders (they can can still overwrite files though). This is to make the code more coherent and fix a lot of issues.
  • Changed the config file's organisation to be better and more readable (you will have to re-create your configs).
  • Updated and fixed the Curseforge integration (now with config settings)
  • Updated to Modrinth API v2.
  • Updated how the mod grabs data from those two platforms
  • The mod's version is now present in the logs.
  • Fixed the logo not getting displayed in the mod info page for Windows systems.
  • Fixed the mod crashing on servers.
  • Rewrote the wiki to be much better and easier to understand
  • Removed the StopModReposts error when the blacklist couldn't be downloaded, and made the integration optional.
  • Replaced the amount of web redirections config with a connection timeout setting instead.

Technical changes

  • Rewrote the entire web system to use Apache's HttpClient. It should be more stable, sometimes faster and provides a way cleaner code.
  • Refactored a good portion of the code base to be more organized, with smaller functions and an overall cleaner code (i hope).
  • Reworked some GUI code to be easier to use
  • Separated the main code into multiple phases, allowing to only do a certain portion at some specific point. Used by the update GUI.
  • Bumped the version number to 2.0

Полная история изменений — на Modrinth.

Комментарии

Загружаем…