Darkhax-Minecraft / Bookshelf

A library mod which adds additional code support beyond what is provided by Forge.
GNU Lesser General Public License v2.1
142 stars 39 forks source link

Mods for Minecraft 1.17.x require additional changes for compatibility #178

Closed smmmadden closed 2 years ago

smmmadden commented 2 years ago

FYI: Mostly a reminder than issue since these files are often forgotten to be updated. There are files to change for 1.17.1 to work. mods.toml, mixins and pack.mcmeta need updating for every major release of Minecraft depending on what is included. Minecraft 1.17.x - Minimum Java Level Supported: 16.0.1 pack.mcmeta files Pack Format=7 for 1.17.x release, 6 for 1.16 and 5 for 1.15, etc. Minecraft Vanilla Launcher (new one from Microsoft Store) has loading issues that require additional changes to our mods and modpacks. Read conversation towards the bottome on CurseForge Support: https://forums.minecraftforge.net/topic/105079-forge-1171-not-launching/?_fromLogin=1 This describes how to workaround the breaking change Microsoft made with the new Vanilla Minecraft launcher

Darkhax commented 2 years ago

Thanks, I will keep that in mind. Did you link to the wrong forum post? That's the Forge forums, not CurseForge support.

smmmadden commented 2 years ago

no that is the Forge site showing what was broken by Microsoft and how Forge developers can fix it for their users. The post means I've reviewed the jar file and found that one or both issues exist in the 1.17 version of the mod.

TelepathicGrunt commented 2 years ago

Just fyi @smmmadden , you don't need to remind modders of these kinds of stuff. We will know what needs to be fixed ourselves as we update our mods and attempt to run them in our development environments.

But generally, only mixins really need to be fixed as packages and codebases changes but that'll be something we pick up on right away as it would prevent the code from compiling or just straight up crash our development runs. The pack.mcmeta isn't actually needed to be edited. Pack format 6 runs just fine on 1.17 and so on. It just helps MC know what format to expect from the json files and MC does have datafixerupper to automatically try to the read the old data and convert it internally to the new format at runtime for use. (Some do say the old model json files have trouble being read but we would know that right away as we test out mods in development anyway). This is why mods can still use ancient nbt files for structures in 1.17 even though the nbt format changed. As for the mods.toml, only thing I can think of is specifying that the mod only runs on 1.17 so it cannot be loaded in 1.16.

I don't see how a new launcher would affect any of this tbh as it simply launches the game. Forge, Mixins, and MC is what handles these files you talked about. Not the launcher. Also, a common mistake I see people make is confused Forge (MinecraftForge) with CurseForge. MinecraftForge is the modding api. CurseForge is a mod hosting site and modpack launcher. They are two separate entities and aren't related at all despite the names.

Hope this helps!

smmmadden commented 2 years ago

yes, this helps greatly, thank you for sharing. The current problem is Microsoft/Mojang changed the game (again) when they introduced the new launcher and pushed it to the Microsoft Store. It caused the launcher to immediately fail because there was no launcher_profiles_minecraft_store.json file so it couldn't find the classes or account. Not to bright and frustrates me that they keep intentionally breaking things on us. :-( Once I made the changes described on Forge site, I got forge 1.17.1 working. I'm not sure if there are changes in our mods to create the correct json files, Microsoft or Forge for that matter. I appreciate the feedback! -Steve

TelepathicGrunt commented 2 years ago

I just found the announcement you were talking about on the Forge website. https://forums.minecraftforge.net/topic/105079-forge-1171-not-launching/?_fromLogin=1

This actually has nothing to do with mixins, mcmeta.json, or mods.toml files. This is actually talking about the launcher_profiles.json and 'launcher_accounts.json. The new launcher does not look for launcher_profiles.json and is instead looking for launcher_profiles_microsoft_store.json. So if you just copy/paste that old launcher_profiles and launcher_accounts files and rename the copies to the new names that have _microsoft_store attached at the end, the new launcher will work just fine.

This is for users to do so there's nothing on the modder's end to do. I did let the Forge team know the announcement was very vague and to try and clear it up later. The other announcement about Java 17 has nothing to do with Mojang/microsoft. It's just saying for users to use Java 16 to run on 1.17.1 instead of Java 17 until Forge rewrites their internals to work with Java 17.

smmmadden commented 2 years ago

yes, that's the one and I couldn't agree more. It was vaguely announced there and just caused some confusion.
Feel free to close this issue. -Thanks, Steve