Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[v2.9.1+QuiltLodaer-0.18.1] Incompatibility Notice and How to Resolve for users [Please Read Quilt users] #62

Closed
2 tasks done
Shibva opened this issue Jun 16, 2023 · 4 comments
Labels
Bug Something isn't working

Comments

@Shibva
Copy link

Shibva commented Jun 16, 2023

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.
@Shibva Shibva added the Bug Something isn't working label Jun 16, 2023
@Shibva Shibva changed the title [v2.9.1+QuiltLodaerFabricAPI-4.0.0] Incompatibility Notice and How to Resolve for users [Please Read Quilt users] [v2.9.1+QuiltLodaer-0.18.1] Incompatibility Notice and How to Resolve for users [Please Read Quilt users] Jun 16, 2023
@TheCSDev
Copy link
Member

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:

  1. Download your JAR file of choice.
  2. Make sure you have "View > File name extensions" enabled in your file explorer
  3. Rename the downloaded jar file from *.jar to *.zip
  4. Extract the .zip file, and then delete it, as you'll no longer need it
  5. Go to META-INF > jarjar, and remove the Fabric API and Architectury API files from there. Keep TCDCommons
  6. Go back to the root directory of the extracted zip file contents
  7. 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)
  8. 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

@TheCSDev TheCSDev pinned this issue Jun 16, 2023
@TheCSDev
Copy link
Member

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 ^

@unilock
Copy link

unilock commented Jul 31, 2023

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.

@TheCSDev
Copy link
Member

TheCSDev commented Oct 2, 2023

The mentioned issues should be resolved in v3.0 now. However, given there's no plans to backport v3.0 at this time, those issues will remain for older game versions. I will keep this issue pinned until I have to unpin it to free up space for another future pinned issue.

@TheCSDev TheCSDev closed this as completed Oct 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants