Releases: MajickTek/MiniCraftLauncher
Release 1.6.3
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
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.
- On the bottom toolbar you can click
- Better GitHub API parsing
Technical stuff
ReleaseObject
andAssetObject
have been removed for cleanliness.- The class
GithubAPI
replacesReleaseObject
and the classAsset
replacesAssetObject
- The class
- 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:
- Input JSON into QuickType by taking output from the URL
https://api.github.com/repos/MajickTek/MiniCraftLauncher/releases/latest
- Convert to JSON Schema
- 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
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
to2.1.0-dev3
. This list changes dynamically and will always show only the 100 latest versions.
- The API limits to 100 requests when not using a token, this means right now (as of writing this) we get approximately
- As mentioned above, the launcher can list versions using the Github API directly instead of a manually-updated version XML.
- Bloat removal
- There were unnecessary things that got removed or changed.
- The
System Info
window has been removed - The
Reference
button has been renamed toWiki
, 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.
- The
- There were unnecessary things that got removed or changed.
Technical changes
OrderedProperties
was finally deleted after all this timeRun 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
What's Changed
- New index xml (Human-readable channel list) by @MajickTek in #6
- Per-Version LauncherWrapper by @MajickTek in #7
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 inDocuments/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
- The child nodes are checked to make sure they are a
isRunning
attribute added toVersionObject
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
and2.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
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
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 thingsSelect 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
- 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
What's Changed
THIS IS THE BIGGEST UPDATE YET!
- UI jtree overhaul by @MajickTek in #3
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
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
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