mchorse / metamorph

Morphing mod for Minecraft 1.12.2
Other
72 stars 42 forks source link

Morphs not showing up in survival menu #236

Closed LoonyBoB closed 3 years ago

LoonyBoB commented 4 years ago

I killed a couple of monsters, nothing showed up in the survival menu, the morph/remove buttons were locked. However, they were showing up in the Metamorph menu, with the acquire button etc. showing, but no way to use them from that menu (as far as I can tell). I log out, shut down the server, reboot the server with "acquire_immediately" set to true this time. I log into the server from my PC, I kill something, same thing. But! The things I had previously are now showing on both menus. Just not the stuff from this particular session. It's very confusing! I reboot the server again... no change this time. Hmm. Still see everything I've killed in metamorph, but still only see the things I killed back in the very first session when looking in survival. I can morph to them okay from there, but as this will be a multiplayer server I don't want to have to shut down the server every time someone wants to morph into a newly killed animal.

My settings are:

{ "acquiring": { "prevent_ghosts": true, "prevent_kill_acquire": false, "acquire_immediately": true }, "morphs": { "keep_morphs": true, "disable_pov": false, "disable_health": false, "disable_morph_animation": false, "disable_morph_disguise": false, "disable_first_person_hand": false, "morph_in_tight_spaces": false, "show_morph_idle_sounds": true, "pause_gui_in_sp": true } }

Am I doing something obviously wrong? I tried changing prevent_ghosts to false as well and that didn't do any different. It's happening for both modded and default mobs (I can morph into the three I killed during my first session. I even removed one out of curiosity from the survival menu... when loading up the main metamorph menu, it was gone. But it didn't go anywhere in my survival menu, and I can still morph into it. It's almost as if the two menus aren't interacting with each other, very confusing. Any ideas? I tried setting prevent_ghosts and acquire_immediately to false, no change, same thing happened.

LoonyBoB commented 4 years ago

I think I may have figured it out. The client-side was configured differently to the server-side and for some reason this was affecting the server play. I would assume that even if the server and client are configured differently, the server should override?

EDIT: Never mind, it didn't work again. Hmm. Will do more testing.

LoonyBoB commented 4 years ago

Okay, it seems to work now when I have it set to acquire_immediately=false on the server and collect the ghost, but otherwise won't work if acquire_immediately is set to true. Any help with that would be great, but for now this is good enough to at least start the server so that's a plus!

mchorse commented 4 years ago

I would assume that even if the server and client are configured differently, the server should override?

Sadly, the configuration API doesn't sync the configuration values with the client side.

LoonyBoB commented 4 years ago

With that said, if both server and client have acquire_immediately set to true, would I be right in saying that you should immediately get the ability to morph upon killing something, and it should appear in both metamorph and survival (assuming it's a survival server) menus?

LoonyBoB commented 4 years ago

Figured it out - I think! The problem is a rare one as it only seems to occur if the client-side remains open (even in the main menu) while the server restarts. The changes in the server settings while the client is open cause the issue. So if you were to follow these steps you might be able to replicate:

1) Boot up the server with settings of one sort. Client config settings do no matter. 2) Go into the game on the client side, kill a mob, follow the normal process, test morphs etc. 3) Exit the world on the client side, but do not exit Minecraft. 4) Shut down the server. 5) Change the settings on the server. 6) Boot up the server. 7) Log back in on the client side.
8) Try killing a mob again.

At this point the issues discussed in this thread occur. If you restart the client side, it seems okay, but it seems to have some kind of cache-like issue if the server settings are changed between client world-logins provided the client doesn't actually exit Minecraft's main menu.

Hope that makes sense.