Scythd

Scythd

26.7k Downloads

Using Non-Compatible Version Syntax with Druidcraft

ReidZ3 opened this issue ยท 6 comments

commented

Scythd v0.1.8 currently requests Druidcraft 1.16.5-0.4.52. However, Druidcraft has not yet been updated to Minecraft version 1.16.5 from 1.16.3. This results in a crash when running Forge v36.1.10+. This occurs because Forge implemented version enforcement for optional mod dependencies on v36.1.10.

A quick fix is to update Druidcraft's version to "1.6.5-0.4.52" in its mods.toml file. This can be found under the META-INF folder in Druidcraft's jar file. The final result should looks something like this.

A few quick notes to @lunekiska: Druidcraft also fails to use proper Forge mod version formatting by leaving off the Minecraft version in its mods.toml file, so a crash will still occur even if you fix your end of the issue. However, I thought it prudent to create an issue here as well. After all, if Druidcraft fixes their versioning syntax, but stays on 1.16.3, the crash will also still occur. I will also be creating an issue under Druidcraft. Your other optional dependencies may have a similar issue; Druidcraft just happened to be the one I was using. Lastly, thanks for the mod!! :D

commented

Ah, nevermind! I now see that Druidcraft has in fact been updated to 1.16.5. I was mistaken as its creator did not update the "mcversion" in its mod.toml file to reflect the change. This is not an issue with your mod whatsoever, and I will close this issue.

commented

This issue also happens with undergarden. @lunekiska

commented

Reopening this issue: as @Sunconure11 pointed out, this issue also occurs with Undergarden. Also, while Forge encourages the use of mcversion-modversion versioning syntax, it is not enforced. Therefore, this issue is more the fault of Scythd than it is of Druidcraft. Until Forge decides to enforce a particular versioning syntax, the onus to comply with any dependents' chosen (and potentially arbitrary) versioning syntax falls on the mod creator(s) using them as an optional dependency. After discussing this issue in this thread, it seems that Druidcraft MAY be switching over to the mcversion-modversion syntax suggested by Forge. However, in the meantime, it may be wise to fix Scythd's mods.toml file to reflect Druidcraft & Undergarden's current versioning syntax (as well as any others).

Moreover, going forward, it should be confirmed that proper syntax reflective of each optional dependency is being used in Scythd's mods.toml file to ensure compatability and prevent crashes.

commented

Okay. Upon a good deal of further sleuthing, I think I've figured out what went wrong! @lunekiska was going off of either the version included in each mod's jar file's name or the Implementation-Version within each mod's MANIFEST.MF. Both of which make sense. However, some of the mods do not stick to a constant versioning syntax between the jar file's name, the manifest file, and the mods.toml file.

To @lunekiska, I'm sure you've got it down, but if not (or if anyone else needs help) here's the best way that I have found to ensure compatibility for each mod:

  1. First check the mods.toml file on the mod's GitHub. If the mod author doesn't have a GitHub, download the jar file from CurseForge or wherever it's available.
  2. Either from the jar file or from GitHub, access the mod's mods.toml file. If it gives you a version number, use that.
  3. If it instead gives ${file.jarVersion} that means its telling Forge to get the version from the Implementation-Version entry in the jar's MANIFEST.MF file. So, download the jar file if you haven't already and you should now see the correct version next to the Implementation-Version entry.
  4. And of course, TEST!!! ๐Ÿ˜

I believe that the issue with Druidcraft was caused by a bug on their end where their jar name and MANIFEST.MF syntaxes did not match the mods.toml syntax that Forge actually uses. It was a super easy mistake to make for both parties involved, and I think that Forge could do a lot to make it more intuitive and less likely for these sorts of bugs to appear. Nevertheless, in the meantime, make sure to check the mods.toml file first before anything else to get the proper version.

commented

Screenshot 2021-05-27 10 54 54

commented

I fixed mods.toml file... Now it should work properly... Check 1.16.5-0.1.9 version on curseforge