Pacmc Versions Save

An easy-to-use package manager (and soon to be launcher) for Minecraft mods.

0.5.2

2 years ago

A small release which fixes abnormal termination with a non-zero exit code since 0.5.0.

0.5.1

2 years ago

This release adds Curseforge support back in, this time using the new Curseforge API! #30

additional features and fixes:

  • improved slug handling - and will ask which slug was meant if it is present in multiple repositories
  • fixed some mods not being removed correctly
  • added pacmc debug test for OS packages which require a basic test

Additionally, there should be a Homebrew package soon!

0.5.0

2 years ago

After a long time and a lot of work, the pacmc rewrite is coming together nicely - although still not completed.

New features and changes

  • modifications to an archive are now abstracted into transactions, which can always be previewed and must be confirmed
  • you can now change the default archive using pacmc archive set-default #34
  • the version of installed content will now always be shown by pacmc list #17
  • improved file and dependency resolving (will probably also fix #22)
  • pacmc archive init replaces pacmc init
  • now using and displaying project slugs everywhere
  • now supporting Fabric, Quilt and Forge as mod loaders
  • removing a mod now also removes unused dependencies
  • mods are now downloaded in parallel
  • better feedback while loading using spinners
  • allow installing and removing multiple mods at once #18
  • added -y (yes flag) which automatically accepts all confirmation questions (this enables pacmc to be reliably used in scripting)
  • mod files now have a more usable file name in the format slug_repo_id.pacmc.jar (e.g. sodium_mr_AANobbMI.pacmc.jar) #19
  • archives now have a random color assigned to them, which will be displayed

New repository APIs

pacmc now uses the Modrinth v2 API, which fixes all issues with the old Modrinth API (#32, #33).

The foundation has been built for supporting the new Curseforge API, but sadly it was not possible to finish it for this release and before Curseforge shuts down its old API - that's why Curseforge support has been dropped in this release and will hopefully be back in the next release.

Internal changes

pacmc now uses a different database (which is not backwards compatible to the old one), so you have to recreate your archives. Additionally, pacmc is now highly modularized, and thanks to Kotlin multiplatform, the doors are now open for other frontends like pacmc-gui or even a web frontend.

The location where pacmc stores its data has changed. It is now $dataLocalDir/pacmc/data/ for data, and $configDir/pacmc/config/ for config files. pacmc now caches requests, the cache is located under $dataLocalDir/pacmc/cache/. Cached requests can be used for displaying metadata in commands like pacmc list.

A lot more to come

I have a lot of plans for new features, frontends and more, the rewrite is just the beginning, required for all the other cool stuff!

0.4.2

2 years ago

pacmc 0.4.2

  • Modrinth will no longer be preferred if only curseforge provides the newest mod version

0.4.1

2 years ago

pacmc 0.4.1

This is a minor bugfix release

  • fix Modrinth dependency handling
  • improve console output for pacmc update
  • improve request error output for the user
  • prompt the user to report error if an error occurs

0.4.0

2 years ago

pacmc 0.4.0

Modrinth support This release brings primary Modrinth support to pacmc. Modrinth is an open source modding platform, it has a documented API and is much more package manager friendly :)

Fixed Curseforge search Curseforge deleted the Fabric category, which affected pacmc. Pacmc now does not use this category anymore.

Info command (The old info command has been renamed to debug) There is a new pacmc info modname command which requests the detailed mod description from Modrinth and renders it into your terminal.

New appearance

  • a lot of command messages have been tweaked in their appearance
  • now using a Windows Terminal compatible arrow on Windows (lol)

Internal changes

  • database migration
  • updated Kotlin to 1.5.30
  • better abstraction of repository interaction

0.3.0

2 years ago

pacmc 0.3.0 - Improved archive handling

Features

Update archive version

You can now update the Minecraft version of an archive to the latest available version! This can be done using the following command: pacmc archive update [(archivename)] (as usual, the archive name defaults to ".minecraft")

After the update, pacmc will download the correct files of all your mods for that version.

Change archive version #5

You can also set the version of an archive to a specific Minecraft version: pacmc archive version [mcversion] [(archivename)] (as usual, the archive name defaults to ".minecraft")

This will also refresh the files for that new (or older) Minecraft version.

Add archives without specifying the path

pacmc archive add [archivename] now works too. (Previously only pacmc archive add [archivename] [archivepath] worked)

If you do not specifiy a path, now it will default to the pacmc data directory, more specifically: pacmcdatadir/archives/archivename

You can find out what pacmcdatadir is on your system using pacmc info and having a look at the dataLocalDir field.

Fixes

  • you now cannot create two archives at the same position anymore (if you have old archive definitions in your database, you may have to redefine them for this safety feature to work for that path).
  • when refreshing the mods of an archive, you will now receive a warning if a mod is not available for the current Minecraft version or if it has been deleted by its owner
  • reduced the size of the log output for deleting old mod files
  • ignore mods of other unknown mod loaders for now

0.2.2

2 years ago

Features

  • added pacmc info command, which displays some debug information

Fixes

  • fix archive remove command #11
  • support for non-embedded PowerShell 7 #8
  • always create the dataLocalDir

0.2.1

2 years ago
  • outdated local files inside an archive do not count as "already installed" anymore
    • this means that you can now update individual packages using the pacmc install command, as this command will search for the newest version and install that one if it is not "already installed" in the archive
  • now using Kotlin 1.5.21

0.2.0

2 years ago

New features

Refresh command
  • pacmc refresh refreshes an archive by:
    • updating all mods and their dependencies
    • resolving all dependencies again
    • deleting all old files
    • redownloading every single files
Load command
  • pacmc load loads one archive into another, this way you can use archives for handling your own "mod packs" - e.g. you can create multiple different "mod profiles" and load them into your main .minecraft mods folder on demand Usage: pacmc load sourcearchive [-a targetarchive] (as usual, the targetarchive defaults to the .minecraft/mods archive)

Feature improvements

  • added more help messages
  • improved look of the command output

Performance and compatibility

  • compatibility with Java 16 (#3)
    • removed xodus-dnq
  • major performance improvements
  • no file system warning on Windows anymore
  • better overall feel because pacmc reacts instantly before a long running task is executed

Upgrading This is a breaking update! Save the list of archives and mods before updating. You will have to reinstall the previously installed mods and run the new pacmc refresh command to refresh all local files in the archive.