35 lines
1.8 KiB
Diff
35 lines
1.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: MrHua269 <mrhua269@gmail.com>
|
|
Date: Fri, 2 May 2025 12:03:14 +0800
|
|
Subject: [PATCH] Fix incorrectly synced data after player teleportation
|
|
|
|
Use vanilla's flag and logics to run some status sync after post teleportation, folia forgets send some packets after teleportation and which caused some desync between client and server
|
|
|
|
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
|
index 8b9c823deed1844fa69d1456a91ac65487b8ae69..4b5855a456e9703b8e0c60da4ab3dfa2865cef60 100644
|
|
--- a/net/minecraft/server/level/ServerPlayer.java
|
|
+++ b/net/minecraft/server/level/ServerPlayer.java
|
|
@@ -1788,14 +1788,20 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
|
this.connection.send(new ClientboundChangeDifficultyPacket(
|
|
worlddata.getDifficulty(), worlddata.isDifficultyLocked()
|
|
));
|
|
- this.connection.send(new ClientboundSetExperiencePacket(
|
|
+ /*this.connection.send(new ClientboundSetExperiencePacket( // Luminol start - teleportAsync tweaks, will send in next tick, see the changes below
|
|
this.experienceProgress, this.totalExperience, this.experienceLevel
|
|
- ));
|
|
+ ));*/ // Luminol end
|
|
|
|
playerlist.sendActivePlayerEffects(this);
|
|
playerlist.sendLevelInfo(this, destination);
|
|
playerlist.sendPlayerPermissionLevel(this);
|
|
|
|
+ // Luminol start - teleportAsync tweaks
|
|
+ this.lastSentExp = -1;
|
|
+ this.lastSentHealth = -1.0F;
|
|
+ this.lastSentFood = -1;
|
|
+ // Luminol end
|
|
+
|
|
// regular world add logic
|
|
this.unsetRemoved();
|
|
destination.addDuringTeleport(this);
|