TelepathicGrunt / Blame

make crashlogs more detailed for certain crashes
GNU Lesser General Public License v3.0
11 stars 1 forks source link

Servers are marked incompatible when installed client-side only. #22

Closed Moleculor closed 3 years ago

Moleculor commented 3 years ago

It's my understanding that this mod is capable of being client-side only. (I could be wrong?)

It's also my understanding that you should be able to connect to servers that do not have this mod installed, if you have the mod installed on your client.

In fact, I have a server with (many) mods installed, but this mod is not installed on the server, and my client can connect to my server with this mod installed on my client.

So far? So good.

However, the server, in the server listing menu, reports to the client that the client is incompatible.

image

Reminder, I can still connect to this server with no issues.

In full disclosure, I haven't narrowed this down to exclusively this mod being one cause of it, however I have looked up the debug.log which shows

[18Jan2021 15:53:28.651] [Netty Client IO #2/DEBUG] [net.minecraftforge.fml.client.ClientHooks/CLIENTHOOKS]: Received FML ping data from server at moleculor.mcserver.us: FMLNETVER=2, mod list is compatible : false, channel list is compatible: true, extra server mods: {}
[18Jan2021 15:53:28.651] [Netty Client IO #2/INFO] [net.minecraftforge.fml.client.ClientHooks/CLIENTHOOKS]: Client has mods that are missing on server: [mightyarchitect, autofish, betteradvancements, blame]

As you can see, this mod appears in the list of mods that are "missing on server".

According to Forge's documentation, a client side only mod...

...should override the DISPLAYTEST extension point to make sure that Forge does not think your mod is required on the server, which would lead to the server being shown as incompatible. For that, put something similar to this into your main mod class constructor:

//Make sure the mod being absent on the other network side does not cause the client to display the server as incompatible
ModLoadingContext.get().registerExtensionPoint(ExtensionPoint.DISPLAYTEST, () -> Pair.of(() -> FMLNetworkConstants.IGNORESERVERONLY, (a, b) -> true));

As I do not seem to be able to pull up DISPLAYTEST in a search of this repository, I suspect the above (or something equivalent) has not been done.

I would like to request it, or something like it, be done? Please? 😀

TelepathicGrunt commented 3 years ago

Blame is not for clientside lmao. Everything it checks pretty much only exists serverside. So single player or on the server. Using it in clientside when connecting is pointless.

I will mark it serverside but i assume clients without blame can still connect the servers with it right?

Also, blame really isnt suppose to be on 24/7. it's meant to be put on if there's strange worldgen issues or if you want to check for unregistered worldgen stuff

Moleculor commented 3 years ago

Using it in clientside when connecting is pointless.

Yeah, I basically have it for checking things in single player, but also connect to servers without deleting the mod or switching away to an entirely different instance.

TelepathicGrunt commented 3 years ago

Well, you did say you were able to connect to the servers just fine so it wasn't really a major issue that prevented gameplay. I did misread and thought it was breaking lol. But anyway, try this jar and lmk if it makes it stop complaining. blame-1.16.4-1.9.1.zip

If that works, I'll release the update

Moleculor commented 3 years ago

Yup, it fixes it!

TelepathicGrunt commented 3 years ago

fixed in 1.9.1. Thank you for reporting!