Dynamic Surroundings

Dynamic Surroundings

51M Downloads

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

CubicAtom opened this issue · 21 comments

commented

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.

commented

Paper-484 (Minecraft 1.16.5)

commented

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.

commented

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?

commented

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.

commented

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

commented

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?

commented
  1. Server > Paper Server
  2. Server > Non-paper
commented

This is my server list
grafik

commented

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

commented

I have the same errors in my latest.log

commented

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

commented

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.

commented

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

commented

gommehd.net

commented

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.

commented

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?

commented

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.

commented

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.

commented

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.

commented

Thanks, it works 👍