Astral Sorcery

Astral Sorcery

63M Downloads

1.12.2 Player Attunement doesn't work on high ping

Nyghts opened this issue ยท 7 comments

commented

Version: 1.10.22
Modpack: MCEternal Lite
Forge Version: 14.23.5.2847
Ping: Varies between 600-800

Expected Result: I walk into the light from the attunement altar with all the required steps done, the floating cutscene occuring and the attunement process occurring with the end landing me on the altar again, attuned to Aevitas and the advancement "I can see the light" being obtained.

What actually happens: I stand in the middle of the attunement altar and the cutscene starts, the camera flings around and I don't get lifted up, the lights proceed as normal and when the process is supposed to be finished, the camera flings around again and nothing occurs. No attunement, no advancement, no perk access.
EDIT: Occasionally I can get the full panning animation to play but it still doesn't attune me.

commented

A config option will be included in AS 1.10.25

commented

No. the whole process waits 1000 ticks until the player reports "i'm done with the animation".
Setting this to 0 meant that it'd always fail.

What you're looking for is somewhere around here:

the camera flight starts and when it's finished it'll run

private ClientCameraFlightHelper.StopDelegate createAttunementDelegate() {

Which ultimately sends the packet to the server asking for attunement. all you'd probably have to do is, instead of running the cameraflight and misc. particle effects, wait 5-10 ticks, and then send the packet.
receiving end on the server:

public void askForAttunement(EntityPlayerMP playerEntity, IMajorConstellation cst) {

commented

I do want to say if anyone comes up with a fix and needs a means of testing it please let me know and I'll be happy to help with my awful internet.

commented

That's some massive desync. I really don't think there's anything that can/should be done about that on this side, tbqh. 600 ms is more than half a second, which is crazy.

Try a VPN to improve your ping?

commented

Yeah its a large amount of ping and sources from having satellite internet, which no matter what VPN I use, its not going to be improving much of anything (I actually usually play on one) I ended up having to just use the command to fix it but figured the issue needed reporting anyways.

commented

A VPN won't shorten your path to the server and definitely would not make your packets reach that sattelite any faster.

I'll dig into the code to see if I can find anything relevant.

commented

@Doomgull
Could having a config option that makes player attunement instant to remove high ping shenanigans solve this?

this.playerAttunementWaitTick = TICKS_PLAYER_ATTUNEMENT + 200; //Depends on the camera flight... awkwardly enough.. client has a bit more time to answer too.

The whole process normally lasts 1000 ticks as seen up there, such a config could switch it to 0. The server tries to sync with the client the whole way through so maybe that's why things get off the rails on high ping.