OreCruncher / DynamicSurroundings

Dynamic Surroundings mod for Minecraft 1.10.x+
MIT License
120 stars 35 forks source link

[1.16.5] No sounds after joining paper server, but works after join non-paper server on paper server #682

Closed CubicAtom closed 3 years ago

CubicAtom commented 3 years ago

Mod Version: 1.16.4-4.0.3.11

Forge Version: 1.16.5-36.0.42

Link to debug.log: https://pastebin.com/CknY78AY

Description: The current problem is when I join a Paper Server after client startup, I don't hear any sounds from Dynamic Surroundings. But when I join a non-paper server (sounds are then active) and then a paper server, the sounds work fine on the paper server. I also have not installed any other mod to rule out other sources of error.

OreCruncher commented 3 years ago

Based on the log it looks like there are a bunch of client side logout events being fired after connecting. The logout triggers DS to release any config information and that is why nothing is heard. (You can search for [DynamicSurroundings/ModuleServiceManager]: Starting action 'stop' in the logs to see how frequent this happens.)

Are you on the Paper server at the same time others are logging out? I also see this in the log which may be concerning:

[24Feb2021 17:27:36.473] [Render thread/FATAL] [net.minecraft.util.concurrent.ThreadTaskExecutor/]: Error executing task on Client
java.lang.IllegalStateException: Invalid entity data item type for field 13 on entity RemoteClientPlayerEntity['§§§§§§§   §'/601, l='ClientLevel', x=8.50, y=50.00, z=-3.50]: old=Optional.empty(class java.util.Optional), new=127(class java.lang.Byte)

I am able to startup Paper and interact with it successfully on my local system. Do you know what version of Paper the server is using?

CubicAtom commented 3 years ago

Paper-484 (Minecraft 1.16.5)

CubicAtom commented 3 years ago

I was only on one server at a time. I was first joined to the paper server, then to a non-paper server, and then back to the paper server.

OreCruncher commented 3 years ago

Best I can tell Forge isn't firing some client side events initially. When you connect to the Forge server it starts working. I saw something similar with a trace from another player using Paper and it did not have the world load event firing.

OreCruncher commented 3 years ago

Can you try this JAR? https://github.com/OreCruncher/DynamicSurroundings2/releases/tag/1.16.4-4.0.3.12a

CubicAtom commented 3 years ago

Unfortunately again the same problem, no sounds after join paper server. When I join a non-paper server and then join a paper server, the sounds from the mod works again.

Link to current debug.log https://pastebin.com/FAmgZqyc

OreCruncher commented 3 years ago

I am using the same Forge version, MultiMC, and used Paper 484. DS is the only mod installed. I am able to connect successfully and get sounds. Based on the logs it does not look like events are firing on your initial connect. One difference that occurred to me the server list. In my case I just have one server - the Paper server. What's in your server list?

CubicAtom commented 3 years ago

This is my server list grafik

CubicAtom commented 3 years ago
  1. Server > Paper Server
  2. Server > Non-paper
OreCruncher commented 3 years ago

Interesting on #2. That V under the ping bar means vanilla. Whats the IP of the second server? Cant find it in the logs.

CubicAtom commented 3 years ago

gommehd.net

OreCruncher commented 3 years ago

With #2 is it running Forge, or is it just a Vanilla server other than Paper?

EDIT: Looks like one of the Forge routines is lying for some reason. I see this in my log"

[11:32:40] [Render thread/INFO] [DynamicSurroundings/ModuleServiceManager]: Connection to server established: MODDED (p:true c:false v:false i:false r:false)

For #1, according to Forge it thinks the connection is modded. This means that my mod is looking for a specific set of connect conditions that will never be met because it isn't a Forge server.

CubicAtom commented 3 years ago

According to Minecraft F3 info, gommehd.net is a bungee cord with Cheetah. I only known from Bukkit, Spigot and Paper. grafik

The only question is what makes Forge think that the connection is modded. It's just a paper server with plugins. Can it also cause some plugin?

OreCruncher commented 3 years ago

That is what is confusing me. When the network channel is formed to the server, Forge will add an attribute that indicates what FML version is present. It is saying that it is FML2, which causes logic to think that it is a modded connection. This causes DS to wait for a specific tag event that will never fire, so DS does not fully initialize. Maybe this is something specific to Bungee servers. From what I recall they are pretty much lobby servers.

CubicAtom commented 3 years ago

Any other ideas on what I could try? I have now restarted my client and joined directly to my test server (without plugins), also on Paper 1.16.5-484. And I hear the sounds of DS. I'm starting to get the feeling that some plugin might be causing it. What else I can do is to ask the owner of the server.

OreCruncher commented 3 years ago

I am not entirely sure you can do anything at the moment. What I am trying to do is initialize after all the tags are sync'd between client and server because my config system makes use of tags. The type of connection that is formed determines what type of tag event is important. I am still looking into it on my end to see if there is a better, more reliable way to handle.

CubicAtom commented 3 years ago

The owner of the server has also tested the current actually version of your mod from curseforge (1.16.4-4.0.3.11), he has the following messages in his logs of the client: https://pastebin.com/uyz2hpjp

CubicAtom commented 3 years ago

I have the same errors in my latest.log

CubicAtom commented 3 years ago

I tested now all older versions from your mod. Here my summary: 1.16.4-4.0.3.5 > Working fine (paper server too) 1.16.4-4.0.3.6 > Client crash after joining paper server 1.16.4-4.0.3.7 > No sounds on paper server 1.16.4-4.0.3.8 > Working fine (paper server too) 1.16.4-4.0.3.9+ > No sounds on paper server

OreCruncher commented 3 years ago

Yes - some of the older versions would work. Reason is that it did things blindly and reloaded several times. For Forge modpacks this could add significant delays to login. I implemented a system that will check for several preconditions before it would actually initialize - doing so only once. What broke here is that the internal helper method for checking if the remote server is modded isn't working because Forge thinks its modded, but its actually Vanilla.

I changed how this logic works to depend on other data about the connection. I tested integrated, remote Forge, remote Paper, and remote Cheeta. It appears to be working. I updated the JAR in the link above. If you could download and try again I would appreciate it.

CubicAtom commented 3 years ago

Thanks, it works 👍