Skip to content

Releases: MajickTek/MiniCraftLauncher

Release 1.6.3

08 Jul 01:18
Compare
Choose a tag to compare

This release incorporates the changes made in prerelease 1.6.3-1 and 1.6.3-2, while adding some nice bugfixes.

  • The console now properly logs the game output
    • I haven't found any edge cases where it doesn't do it "properly" yet
  • optimizations to the changelog/description viewer
    • it now loads faster, yay

Full Changelog: v1.6.3-2...v1.6.3

1.6.3-2

27 May 06:04
Compare
Choose a tag to compare
1.6.3-2 Pre-release
Pre-release

IMPORTANT

  • The minimum usable launcher version is now Release 1.5. Earlier versions probably won't load game versions correctly.

What's added

  • A full changelog viewer
    • When clicking the "View Changelog" button of a version, a new window opens displaying the version's description and full changelog in separate tabs.
  • A console
    • On the bottom toolbar you can click Toggle Console to show a small resizable console window. Right now it only shows output from the launcher but soon it will capture game output as well.
  • Better GitHub API parsing

Technical stuff

  • ReleaseObject and AssetObject have been removed for cleanliness.
    • The class GithubAPI replaces ReleaseObject and the class Asset replaces AssetObject
  • Fabric loader version is 0.13.3, matching the example mod.
  • The GUI console is thread friendly, so hopefully game output streams can be captured soon.

An API was autogenerated using QuickType.
The process:

  1. Input JSON into QuickType by taking output from the URL https://api.github.com/repos/MajickTek/MiniCraftLauncher/releases/latest
  2. Convert to JSON Schema
  3. Convert Schema to Java, leaving all default options (Choose Array instead of List, as List has a syntax error at the time of writing)

QuickType uses fasterxml-jackson which has a more modern and nicer API than json-simple which is what I used before. The performance might be better although it seems to be indistinguishable.

Full Changelog: v1.6.3-1...v1.6.3-2

1.6.3-1

20 May 23:42
Compare
Choose a tag to compare
1.6.3-1 Pre-release
Pre-release

This pre-release shhowcases some quality-of-life improvements to the launcher which will be available in Release 1.6.3.

Phasing out the "Index XML"

TL;DR: official minicraft+ versions come directly from the official github
There are now only 3 channels:

  • The MinicraftPlus channel is a "live" channel - it now gets the 100 latest versions directly from the official github instead of my index repo. This is much faster. It shows releases and pre-releases in one window (under separate folders).
  • The MinicraftPlus (Launcher 1.6.2) channel displays the same way as the first channel, but uses my "index xml" system so that older launcher versions still work. Eventually I may discontinue this entirely.
  • The Standalone Mods channel still contains user-submitted versions like before. I am hoping to replace this by allowing people to submit their github repos and automatically updating every version the way the "live channel" works.

Additions

  • There is a menu to view the approximate "changelog" for each version
    • It takes the description from a version's github release. The full changelog is often a downloadable file so this is not a complete and accurate solution.
  • Github downloading
    • As mentioned above, the launcher can list versions using the Github API directly instead of a manually-updated version XML.
      • The API limits to 100 requests when not using a token, this means right now (as of writing this) we get approximately 1.9.1 prerelease 1 to 2.1.0-dev3. This list changes dynamically and will always show only the 100 latest versions.
  • Bloat removal
    • There were unnecessary things that got removed or changed.
      • The System Info window has been removed
      • The Reference button has been renamed to Wiki, as it no longer opens the old reference app and instead points to the wiki.
      • Technical changes were done to remove unused code and files.

Technical changes

  • OrderedProperties was finally deleted after all this time
  • Run With menu was fixed to save the visual button state
  • fix type checking for VersionObject in missed scenario
  • Semantic versioning is now employed in the launcher as well as on github
    • In the code it is now done using a serializable class
    • The version is now properly displayed on appropriate places in the GUI
  • Libraries not downloaded via Maven now are included using a relative filepath
    • This means the jars can be properly included in the repository and it's possible to build the launcher from scratch again
  • FabricBootstrap.jar now uses the latest version of MinicraftGameProvider pulled in from its maven repo.
    • The custom-built version I made is no longer included, this means simpler distribution on my end
  • Unused/un-needed code has been removed including a lot of unused import statements
  • A library was added called Updater that handles the Github API and provides classes to convert Github releases into Java objects

TODO

  • Allow updating from inside the launcher
    • It's clear from the commits I've tried to figure this out but it's complicated
  • Bring back mega-old functionality
    • Allow saving a "profile", e.g. serializing a version tree so that edited versions can be saved. This will also save per-version wrapper settings.
    • Allow deleting versions as well as adding empty ones
    • Re-introduce keybinds for certain actions
  • Think of something special for 2.0.0
  • more stuff i'm forgetting

As always, to run you can unpack the bin.zip and run start.bat on Windows or MiniCraftLauncher.jar on any other OS.
The file 1.6.3.1_bin_fabric_hotfix.zip replaces the 0.13.0 version of Fabric with 0.13.3 to match the example mod.

Full Changelog: Release-1.6.2...v1.6.3-1

Release-1.6.2

07 May 03:54
Compare
Choose a tag to compare

What's Changed

The Channel Selector has a new UI that is easier on the eyes. It now displays channel names instead of URLs.

The "empty" node you see when opening the launcher can be double-clicked to open the Channel Selector.

The "mods" folder has been moved into the game folder.

  • So instead of Documents/MajickTek/minilauncher/mods it is in Documents/MajickTek/minilauncher/saves/<version>/playminicraft/mods
    • This means mods can now be separated by version

Multiple versions can be opened, same as 1.6.1, but the same version cannot be opened twice.

  • This means that you cannot load the same save twice and break something

The Edit utility now shows the 2 new properties (Is Running? and Launches With:)

Continuous work on the updater is being done :)

Under the hood stuff

  • Index files are now saved as their actual name instead of index + random number
  • "empty" node now has a UserObject (type EmptyObject), allowing string comparisons to be removed.
    • This means someone can release a standalone mod called "empty" if they wish and the launcher won't behave weirdly
  • More type safety
    • The child nodes are checked to make sure they are a VerionObject before interacting with them
  • isRunning attribute added to VersionObject to make sure a version can only be launched once
  • Java 17 is now actually forced
  • Internal build of MinicraftGameProvider is included, adding hashes for 2.1.0-dev2 and 2.1.0-dev3
  • A menu is exposed that opens a dialog to get the MD5 hash of a downloaded jar. Mostly useful for debugging

Full Changelog: Release-1.6.1...Release-1.6.2

Release 1.6.1

04 May 02:51
Compare
Choose a tag to compare

What's Changed

  • Fabric bootstrap (Externalize Fabric) by @MajickTek in #5
    • Fabric can now be run in a separate process

Added back the toggle to hide the launcher during play (in the Options) menu.

Both Fabric and Vanilla launchers now run in separate threads, preventing the launcher from freezing when unhidden.

  • Also allows multiple games to be open at once
  • Prevents the launcher from crashing when the game is closed while using Fabric

Now arbitrarily changing version naming scheme to prevent reaching 2.0 too fast.

As always, download bin.zip and run start.bat on windows or MiniCraftLauncher.jar on any other OS.
Full Changelog: Release-1.6...Release-1.6.1

Release-1.6

03 May 00:16
Compare
Choose a tag to compare

Ooh, a big one. Mods!

What's Changed

  • Add Dynamic Launching Behaviour by @MajickTek in #4

    • Supports using different launching mechanisms
  • Added back Options menu things

    • Select LauncherWrapper: Switch between "vanilla" mode and "modding" modes
  • Added Open Mods folder option when right-clicking a version

Fabric Support!

It is now possible to launch a version with the Fabric modloader. Only Minicraft and MiniCraftPlus (2.0+) are fully supported although using other versions and "mods" may work as well.

The mod folder is Documents/MajickTek/minilauncher/mods. Only Fabric mods can go in this folder, full-game mods like CthuluCraft/AirCraft will not work.

The MiniFabric API is not included but you can build it from here: https://github.com/MiniFabric/MiniFabric_API or try using the example mod: https://github.com/MiniFabric/MiniFabric-example-mod . Once these tools evolve, the process for making and installing mods will improve.

Guides on how to use this system will be available on the wiki at a later date.

Full Changelog: Release-1.5-Hotfix...Release-1.6

The download size for this version will be larger because of the various Fabric dependencies (only the minimum libraries are included, optional libraries like Log4J are excluded). If this becomes a problem more libraries will be added. Also, only a bin.zip is provided because the dependencies are in a folder.

Known Issues

Right now when the game is launched with Fabric, the KnotClient class is started in another thread instead of a separate process. This means when the game calls System.exit(0) on the menu, the launcher is also closed.

One way to fix this is by moving the launching code to a separate jar and then running that jar from the launcher in a new process. This will likely be available by the next update.

Release 1.5 Hotfix

19 Apr 00:42
Compare
Choose a tag to compare
  • Deleting versions is now possible (OOPS!)
  • The refresh button actually works
  • No errors thrown when trying to do stuff with the tree
  • Missing context menu is now visible

Full Changelog: Release-1.5...Release-1.5-Hotfix

Release 1.5

29 Mar 22:58
Compare
Choose a tag to compare

What's Changed

THIS IS THE BIGGEST UPDATE YET!

The UI has changed drastically.

The main view of the UI is now a tree instead of a list. This means the main view can be navigated much like a file browser.

Much of the functionality is the same, except the broken in-app reference window has been replaced by a link to the wiki.

The code for the main view is simpler and more extendible, although not perfectly optimized yet.

There is also one other change: The channel selector.

Instead of selecting a pre-defined channel from a submenu, it loads a list of channels (index files) from this file.

Full Changelog: Release-1.4...Release-1.5

Release 1.4

26 Feb 01:50
Compare
Choose a tag to compare

This release fixes the error being thrown when attempting to re-download an index after previously deleting it.

It also adds a context menu that will let you open a version's save folder. If that version is not downloaded or doesn't have a save folder, it will open the general save folder (MajickTek/minilauncher/saves).

At this time, there is no button to open the default save folder (for windows: AppData/Local/.minicraft or AppData/Local/.playminicraft), as all versions of MiniCraft+ and modded versions of MiniCraft+ both support saving their files within the launcher's folder instead.

Known Issues

For some reason, hyperlinks in the reference window aren't clickable or don't load properly when run from the jar but work fine in Eclipse.

Full Changelog: Release-1.3...Release-1.4

Release 1.3

24 Feb 06:23
Compare
Choose a tag to compare

A few things were added to this version:

  • A WIP in-app help section (Help | Reference)
  • An Options menu
    • Add ability to toggle "launcher hiding"
  • Fix download progress
    • Now the game version only displays "Ready to Play!" after the download has reached 100%.

Some known issues:
Sometimes after downloading a version, switching indexes, or cleaning a folder, an error is thrown and all of the versions disappear.

  • This can be fixed by simply re-downloading the index via the Edit menu.

Full Changelog: Release-1.2...Release-1.3