Packet Caching wasn't working on player add due to the new packet bundling feature
This commit is contained in:
@@ -101,7 +101,7 @@ index fa14ab3d8117e9d357380d21d3c6a2cd1df7c04c..e5462d8d3f89c93c7c691a4759860be1
|
||||
this.isSaving = false;
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerEntity.java b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||
index b7fd8e70413c38923d0719aff803449e392383ac..de3fdb0ff2abc7c42cd7387e5cb0987d5e5f12a3 100644
|
||||
index b7fd8e70413c38923d0719aff803449e392383ac..d86836541f5eaa654d3dc452fe7cc15eafff4dfa 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerEntity.java
|
||||
@@ -334,27 +334,8 @@ public class ServerEntity {
|
||||
@@ -130,7 +130,7 @@ index b7fd8e70413c38923d0719aff803449e392383ac..de3fdb0ff2abc7c42cd7387e5cb0987d
|
||||
- }
|
||||
- ((LivingEntity) this.entity).detectEquipmentUpdates(); // CraftBukkit - SPIGOT-3789: sync again immediately after sending
|
||||
+ if (this.entity instanceof LivingEntity livingEntity) {
|
||||
+ livingEntity.sendEquipment(entityplayer); // Slice
|
||||
+ livingEntity.sendEquipment(consumer, entityplayer); // Slice
|
||||
}
|
||||
|
||||
// CraftBukkit start - Fix for nonsensical head yaw
|
||||
@@ -173,7 +173,7 @@ index 5813349d484cf40c5b75de6e55dff95286285934..e24b0871819add31e00e1e3d782fda31
|
||||
|
||||
// Paper start - helper function for configurable spawn radius
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 72739d5949314b242869fd5fef3b5f0c076434d0..5879e1cc44bee6fd4b3fef2577ed516ce8e3c917 100644
|
||||
index 72739d5949314b242869fd5fef3b5f0c076434d0..997ba564bb45484aa67e72cdabf7d09313843e64 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -261,6 +261,8 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
@@ -246,7 +246,7 @@ index 72739d5949314b242869fd5fef3b5f0c076434d0..5879e1cc44bee6fd4b3fef2577ed516c
|
||||
+ // Slice end
|
||||
+
|
||||
+ // Slice start
|
||||
+ public void sendEquipment(ServerPlayer p) {
|
||||
+ public void sendEquipment(java.util.function.Consumer<net.minecraft.network.protocol.Packet<net.minecraft.network.protocol.game.ClientGamePacketListener>> consumer, ServerPlayer p) {
|
||||
+ org.bukkit.event.player.PlayerReceiveEquipmentEvent event = new org.bukkit.event.player.PlayerReceiveEquipmentEvent(p.getBukkitEntity(), getBukkitEntity());
|
||||
+ level.getCraftServer().getPluginManager().callEvent(event);
|
||||
+
|
||||
@@ -287,7 +287,7 @@ index 72739d5949314b242869fd5fef3b5f0c076434d0..5879e1cc44bee6fd4b3fef2577ed516c
|
||||
+ if (tag != null) {
|
||||
+ cachedEquipmentMap.put(tag, equipmentPacket);
|
||||
+ }
|
||||
+ p.connection.send(equipmentPacket);
|
||||
+ consumer.accept(equipmentPacket);
|
||||
+ }
|
||||
+
|
||||
+ detectEquipmentUpdates(); // CraftBukkit - SPIGOT-3789: sync again immediately after sending
|
||||
@@ -309,10 +309,10 @@ index defe31a5d3aa89a3d18b94f2ff005594e38754b3..637a86e74d633901fdd2f2f1ba6aa4ed
|
||||
File file = this.getDataFile(id);
|
||||
if (file.exists()) {
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
index d43859f8aa7beed82dd3a146bb1086982cd0cda7..502aec23d70f7b995eaf9df61dc50896cf8e43c2 100644
|
||||
index d43859f8aa7beed82dd3a146bb1086982cd0cda7..7d063ab5a136eebeb84b395dcb7b731dadc53e88 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||
@@ -1071,4 +1071,13 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||
@@ -1071,4 +1071,14 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||
getHandle().knockback(strength, directionX, directionZ);
|
||||
};
|
||||
// Paper end
|
||||
@@ -321,7 +321,8 @@ index d43859f8aa7beed82dd3a146bb1086982cd0cda7..502aec23d70f7b995eaf9df61dc50896
|
||||
+ @Override
|
||||
+ public void sendEquipment(Player p) {
|
||||
+ if (entity instanceof net.minecraft.world.entity.LivingEntity livingEntity) {
|
||||
+ livingEntity.sendEquipment(((CraftPlayer) p).getHandle());
|
||||
+ net.minecraft.server.level.ServerPlayer serverPlayer = ((CraftPlayer) p).getHandle();
|
||||
+ livingEntity.sendEquipment(packet -> serverPlayer.connection.send(packet), serverPlayer);
|
||||
+ }
|
||||
+ }
|
||||
+ // Slice end
|
||||
|
||||
Reference in New Issue
Block a user