gnembon / carpet-autoCraftingTable

autoCraftingTable extension for carpet-mod
GNU Lesser General Public License v3.0
80 stars 27 forks source link

Incompatible with clients without the mod and with Fabric API on 1.20+ or exactly 0.79.0 #67

Open altrisi opened 1 year ago

altrisi commented 1 year ago

carpet:autocraftingtable is being regsynced, so the client will complain it doesn't know about it.

Idk if you need Fabric API on the server (any version).

I think this is also currently an issue if there's other mods that affect the registry but not autocraftingtable, given it seems to have been a bug in Fabric API that is being fixed on 1.20 (kept in 1.19.4 for backwards compat with mods working because of the bug).

kosma commented 1 year ago

Also experiencing this issue, this is how it looks:

[17:11:34] [Render thread/ERROR]: Received unknown remote registry entries from server
[17:11:34] [Render thread/ERROR]: Registry entry (carpet:crafting_table) is missing from local registry (minecraft:block_entity_type)
[17:11:34] [Render thread/ERROR]: Registry remapping failed!
net.fabricmc.fabric.impl.registry.sync.RemapException: Received a registry entry that is unknown to this client.
This is usually caused by a mismatched mod set between the client and server. See the client logs for more details.
The following registry entry namespaces may be related:

carpet

    at net.fabricmc.fabric.impl.registry.sync.RegistrySyncManager.checkRemoteRemap(RegistrySyncManager.java:388) ~[fabric-registry-sync-v0-2.2.6+b3afc78b27-e0e706316d1e86c1.jar:?]
    at net.fabricmc.fabric.impl.registry.sync.RegistrySyncManager.apply(RegistrySyncManager.java:284) ~[fabric-registry-sync-v0-2.2.6+b3afc78b27-e0e706316d1e86c1.jar:?]
    at net.fabricmc.fabric.impl.registry.sync.RegistrySyncManager.lambda$receivePacket$0(RegistrySyncManager.java:118) ~[fabric-registry-sync-v0-2.2.6+b3afc78b27-e0e706316d1e86c1.jar:?]
    at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
    at net.minecraft.util.thread.ThreadExecutor.executeTask(ThreadExecutor.java:156) ~[client-intermediary.jar:?]
    at net.minecraft.util.thread.ReentrantThreadExecutor.executeTask(ReentrantThreadExecutor.java:23) ~[client-intermediary.jar:?]
    at net.minecraft.util.thread.ThreadExecutor.runTask(ThreadExecutor.java:130) ~[client-intermediary.jar:?]
    at net.minecraft.util.thread.ThreadExecutor.runTasks(ThreadExecutor.java:115) ~[client-intermediary.jar:?]
    at net.minecraft.client.MinecraftClient.render(MinecraftClient.java:1175) ~[client-intermediary.jar:?]
    at net.minecraft.client.MinecraftClient.run(MinecraftClient.java:802) ~[client-intermediary.jar:?]
    at net.minecraft.client.main.Main.main(Main.java:250) ~[minecraft-1.20-rc1-client.jar:?]
    at net.fabricmc.loader.impl.game.minecraft.MinecraftGameProvider.launch(MinecraftGameProvider.java:468) ~[fabric-loader-0.14.21.jar:?]
    at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:74) ~[fabric-loader-0.14.21.jar:?]
    at net.fabricmc.loader.impl.launch.knot.KnotClient.main(KnotClient.java:23) ~[fabric-loader-0.14.21.jar:?]
    at org.prismlauncher.launcher.impl.StandardLauncher.launch(StandardLauncher.java:88) ~[NewLaunch.jar:?]
    at org.prismlauncher.EntryPoint.listen(EntryPoint.java:126) ~[NewLaunch.jar:?]
    at org.prismlauncher.EntryPoint.main(EntryPoint.java:71) ~[NewLaunch.jar:?]
kosma commented 1 year ago

Additional information from Fabric devs: https://fabricmc.net/2023/05/25/120.html

During one of the code refactors, one bug related to the Registry Sync was “accidentally” fixed. The bug previously allowed clients with Fabric API (but without content mods) to join a server with modded contents, despite the mod being missing on the client. The refactor was merged to both 1.19.4 and 1.20 snapshot branches; however, the bug was reintroduced to 1.19.4 only to prevent unexpected breakage. If you have previously relied on the bug, make sure to have users install the mods on the client.

kosma commented 1 year ago

Patbox said that the minimal dependency for this would be depending on and including polymer-reg-sync-manipulator, so no need for the entire Polymer.

cohenerickson commented 1 year ago

Also experiencing this issue, the client receives an error about mismatched mods but it tells the user that the mod is carpet instead of carpet-autoCraftingTable, this has caused quite a bit of confusion with members switching from vanilla to a fabric client

Mostly just an inconvenience for members to have to install more mods on top of what they may already have

image

probablypablito commented 1 year ago

+1

This is really annoying!

ChromesDuzez commented 1 year ago

Is there any way to refactor this mod so that it can just be server-side? Otherwise there should be a mention somewhere that carpet-autocrafter is a server and client-sided mod and also note its incompatibility with optifabric.

ChromesDuzez commented 1 year ago

It seems that optifabric was making changes to make these two mods compatible but as you can see whatever I am trying to run isn't working so looking into whether the changes were included into the most recent build that is published on curseforge. As you can see here... [Question] Regarding latest build on curseforge

kosma commented 1 year ago

It seems that optifabric was making changes to make these two mods compatible

That's about fabric-carpet, not carpet-autocraftingtable, see https://github.com/Chocohead/OptiFabric/issues/1010.

end-user commented 1 year ago

+1 for getting this fixed asap! Server-only mods should not force clients to also be modded.