Salandora / SophisticatedBackpacks

Sophisticated backpacks is yet another minecraft backpack mod this time with backpack you can place in world, color in different color combinations, upgrade with more inventory and enhance with many functional upgrades.
https://www.curseforge.com/minecraft/mc-mods/sophisticated-backpacks-unofficial-fabric-port
GNU General Public License v3.0
15 stars 4 forks source link

Mod requires Modern KeyBinding mod on a server (Modern KeyBinding is client-only) #17

Closed pavog closed 2 weeks ago

pavog commented 1 month ago

Describe the bug I created a brand new server with Fabric 1.20.1 (Fabric Loader 0.15.11) and installed:

When I try to start the server it crashes and tells me that it needs mkb (Modern KeyBinding) 1.2.0 or later.

This is the error message:

[11:11:38] [main/ERROR]: Incompatible mods found!
net.fabricmc.loader.impl.FormattedException: Some of your mods are incompatible with the game or each other!
A potential solution has been determined, this may resolve your problem:
     - Install mkb, version 1.2.0 or later.
More details:
     - Mod 'Sophisticated Backpacks' (sophisticatedbackpacks) 3.19.4+mc1.20.1-build.39 requires version 1.2.0 or later of mkb, which is missing!
    at net.fabricmc.loader.impl.FormattedException.ofLocalized(FormattedException.java:51) ~[fabric-loader-0.15.11.jar:?]
    at net.fabricmc.loader.impl.FabricLoaderImpl.load(FabricLoaderImpl.java:195) ~[fabric-loader-0.15.11.jar:?]
    at net.fabricmc.loader.impl.launch.knot.Knot.init(Knot.java:146) ~[fabric-loader-0.15.11.jar:?]
    at net.fabricmc.loader.impl.launch.knot.Knot.launch(Knot.java:6[8](https://exaroton.com/log/#L8)) ~[fabric-loader-0.15.11.jar:?]
    at net.fabricmc.loader.impl.launch.knot.KnotServer.main(KnotServer.java:23) ~[fabric-loader-0.15.11.jar:?]
    at net.fabricmc.loader.impl.launch.server.FabricServerLauncher.main(FabricServerLauncher.java:6[9](https://exaroton.com/log/#L9)) ~[fabric-loader-0.15.11.jar:?]

This is the full log: https://mclo.gs/4rYmxcb

The problem is that mkb (Modern KeyBinding) is a client-only mod.

I ask that you change your mod so that it only requires mkb (Modern KeyBinding) when running on a client. But that it does not need the mod when running on a server.

To Reproduce Steps to reproduce the behavior:

  1. Install Fabric 1.20.1 (0.15.11)
  2. Install the mods:
    • Fabric API 0.92.1 for 1.20.1
    • Sophisticated Backpacks 3.19.4 for 1.20.1
    • Sophisticated Core 0.5.108 for 1.20.1
  3. Start the server

Expected behavior The mod should load on a server without the mkb (Modern KeyBinding) mod. The Modern KeyBinding mod is a client-only mod which you can not (or at least should not) use on a server.

Versions Sophisticated Backpacks 3.19.4+mc1.20.1-build.39 from modrinth

Salandora commented 1 month ago

While I agree that mkb is not needed on a server the source is not a split source set therefore I'm not aware of a way to depend on mkb only on the client side. This also means that the client only code of this mod will be on your server too. You should be able to use dependency overrides if you really don't want to install mkb on your server

pavog commented 1 month ago

It's a bummer that Fabric does not offer a way to differentiate the dependency mods so that they are required on the client but not on the server. Is there perhaps a way that you can change the code of the mod so that the mod itself has a system that differentiates whether the mod is running on the server or the client and then checks the dependencies automatically?

Salandora commented 2 weeks ago

Modern KeyBinding is no longer a required dependency