[v2.9.1+QuiltLodaer-0.18.1] Incompatibility Notice and How to Resolve for users [Please Read Quilt users]
Shibva opened this issue ยท 4 comments
What happened?
This is a notifiaction/report that the recent push from 2.8.1 to 2.9.1 of BetterStats has created an incompatability with the Quiltloader version 0.18.1
What is Quiltloader?
Quiltloader or Quilt for short is a Forked project on the Frabic Loader made as a responce to certain events wtih the Fabric Developers that I will not indulge in for the sake of this reports consistency. This is done using its own loader and its own API known as Quilted Fabric API or QFAPI for short
This only supports Farbic API
Yes, this is true; however this mod also ran on Quilt as well. How? One fo the main objectives is depsite it being a fork on the Farbic Loader and its API its goal is to be as in-line wtih the Fabric API as possible; meaning that within the QFAPI itself it contains a embeded version of Farbics API in addition to some of Quilts own API applications; this allows for it to be backwards compatible with all fabric mods in the version its supports
So whats the problem then?
It appears the version of Farbic that it requires for the mod to run on was bumped up to 0.14.21 while the Quiltloader is set to run its farbic compatibility wtih version 0.14.19
Is this an issue?
I thought it was at first but after trying something it ran appropriately; turns out I was just using version 0.18.1 of the quiltloader and updating it to the lattest version (0.19.1 as of the time of writing this) resolved the issue
So why are you positng this?
Tbh Ive decided that this would be a opportunity to bring awareness to any issues that quilt users may have. If any reports pop up saying that it wont run for quilt you can redirect them here.
TLDR
BetterStatus as of ver 2.9.1 is no longer compatible wtih quiltloader (not QFAPI) version 0.18.1 and lower; updating quiltloader to use version 0.19.1 should fix any issue that quiltusers may have. Run the latest quilt-loader installer from Quiltloaders official website and install 0.19.1 should fix the issue.
Steps to reproduce
The issue appears if a user is using quiltloader version 0.18.1 or lower; updating it to 0.19.1 should fix the issue.
I recommend pinning this on the issues page
Relevant log output or crash report
Crash Report is unnecessary in this case due to the issue having been resolved; this report is just to notify users that may run into the same issue regarding BetterStats 2.9.1 no longer loading as intended.
Other installed mods
This is non-applicable
Code of Conduct
- I agree that if the issue is regarding a crash, I gave the logs and the crash report.
- I agree that I will be available later for any follow-up questions to help diagnose and resolve the issue.
Yeah, sorry about that. I usually tend to keep all embedded dependencies up to date with latest versions, which does end up killing QuiltMC support at times. This is related to #47.
There's also a workaround that involves removing embedded dependencies, and installing them yourself.
It may be a bit more complicated, but I'll try to explain how this one works:
- Download your JAR file of choice.
- Make sure you have "View > File name extensions" enabled in your file explorer
- Rename the downloaded jar file from
*.jar
to*.zip
- Extract the
.zip
file, and then delete it, as you'll no longer need it - Go to
META-INF > jarjar
, and remove theFabric API
andArchitectury API
files from there. KeepTCDCommons
- Go back to the root directory of the extracted
zip
file contents - Select all files in there, and
.zip
them all back up. Then rename the new*.zip
file to*.jar
. (Replace star (*) with your name of choice) - I believe this step is optional, but you can try removing the jar file entries from
fabric.mod.json
just in case you get any issues.
Here's an example video of how to remove embedded dependencies from a Minecraft mod .jar
file:
2023-06-16.21-54-41.mov
Oh wait, I just noticed you said it's incompatible with lower versions, not higher ones. Well, in that case, yes, you can update Quilt. But if you ever come across a situation where it's incompatible with higher versions, you can follow the tip above ^
Embedding the entirety of Architectury API and Fabric API in the form of JAR files is a very bad idea in any case.
For example, it adds another attack vector for exploits such as Fractureiser, in the case that the JAR files are somehow infected prior to compiling the mod, while being much more difficult detect by nature of the JAR files being nested inside the primary JAR, thus not being as easy to scan.
At the very, very least, the mod should be using modImplementation include("fabric-api")
, which safely grabs an official copy of Fabric API from Fabric's Maven repository and embeds it in the JAR file automatically. (along with modApi include("architectury-api")
, of course)
Preferably, only the required parts of Architectury / Fabric API should be included by specifying groups, as seen here, for example: https://github.com/phomc/grimoire/blob/dev/build.gradle#L29
Or, best of all, the APIs could simply not be included at all, given most users will likely have them installed anyway.