Crystal-Nest / soul-fire-d

Let Soul Fire burn!
https://modrinth.com/mod/soul-fire-d
GNU General Public License v3.0
5 stars 2 forks source link

Weird entity behavior when the client has Soul Fire'd, but not the server it is connecting to. #27

Closed fclivaz42 closed 1 year ago

fclivaz42 commented 1 year ago

Describe the bug

To Reproduce Steps to reproduce the behavior:

  1. Start (or try to connect to) a server that does not have Soul Fire'd installed WITH the client having it installed.
  2. Take a look at entity drops, villagers trying to sleep and other people's skins. ... That's pretty much it. I have been able to single it out because I have been re-enabling mod by mod on a debug server to find 2 problematic mods, and unfortunately Soul Fire'd was one.

Expected behavior We should be able to percieve the world with its entities and correct rendering.

Screenshots Those 3 pictures were taken with Soul Fire'd enabled on the Client, but not the server. 2023-09-03_03 23 44 2023-09-03_03 23 47 2023-09-03_03 23 53 Once it has been properly installed, stuff returns to normal (notice the skin layers and wood drops) 2023-09-03_03 25 22 2023-09-03_03 25 30

System information:

Additional context here are some 1.20.1 screenshots image 2023-09-03_03 39 36 2023-09-03_03 40 52

Aaaaaand here it is after installing Soul Fire'd. 2023-09-03_03 43 18 2023-09-03_03 43 23 image


Thank you for your work and your mod and have a very nice day!!

Crystal-Spider commented 1 year ago

Hello, thank you for using this mod!

As explicitly stated on the mod page, this mod is required on both client and server to function properly, so it's no wonder that having it only on the client leads to unexpected behaviors.

You can see the client and server requirement on the mod page:
image

Crystal-Spider commented 1 year ago

Furthermore, duplicate of #8

fclivaz42 commented 1 year ago

Oh yes I am fully aware that it is a mod that has to be used on both sides. The problem arises when you wish to play on servers that do not have it installed which leads to unexpected behavior that should not be happening. Other mods for example that also are both client/server do not modify anything if the server does not propose it.

It just becomes an issue when you have a proxie'd server with a survival featuring the mod and a creative wide which runs on Paper and thus can't support it. Hence why the bug report. I haven't run into any other mod that, when the server is lacking it, messes up the client side. Of course it is not expected to work (eg. I don't expect Better Nether blocks to be able to be used) but it does not produced any other behavior.

Crystal-Spider commented 1 year ago

Well, it can't be the case for this mod.
Registering blocks it's quite different from having mixins.
Either it's on both sides or it's not, can't be otherwise, I'm sorry.

fclivaz42 commented 1 year ago

I don't really understand your comment, could you explain further please?

Crystal-Spider commented 1 year ago

To make this mod work, I had to implement mixins.
Mixins are kind of "patches" to the original Minecraft code, changing the compiled version of the code.
Once the mod is installed, Minecraft compiled code is patched and modified. Regardless of the side the mod is installed to.
Since, to keep track of the fire stuff, it's required to do many things server side, when the "patches" are not on that side, the mod breaks as the client has the modified compiled code while the server does not and thus they can't communicate properly.

Registering blocks or items instead, for example, it's quite different as it's handled by the mod loader (unlike mixins) and it has various fail-safe mechanisms, for example if the client registers some blocks but the server does not, then the blocks just can't be used on the server.

To be honest maybe it would be possible to do what you ask for, but it would be very complicated for this mod and I just don't have enough time nor will to try. Especially considering I have many other things to do irl, other mods and ideas, a job, and this is a hobby.

fclivaz42 commented 1 year ago

That now makes lot more sense. Fully understand you not willing to soend time if it is too complicated, that is perfectly fine. Don't want to backseat develop either since I'm prertty confident it is the most disrespectful thing as well, but the explanation of mixins having to keep track of entities for soul fire to work makes perfect sense. Thank you as well for explaining the difference between block registration and mixins, much appreciated. I could then suggest a warning or a "known bugs" section showing that this is expected behavior on servers that do not featurr this mod then? Would be a lot less confusing.

Have a very nice day! I'd be infinitely grateful if you ever come up with a fix but no rush, life is more important :)