9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-25 01:49:16 +00:00
Files
Leaf/leaf-server/minecraft-patches/features/0237-Protocol-Core.patch
hayanesuru ea00b11d11 Refactor async entity tracker (#390)
* prevents async entity tracker update equipment

* fix seenBy updated check

* skip submit empty

* fix invertedVisibilityEntities data race

* strict thread check

* set max-threads to 1 by default

* use fixed thread count

* increase thread priority

* Revert "use fixed thread count"

This reverts commit 6746bc25a8.

* Revert "set max-threads to 1 by default"

This reverts commit 5295b6d3e1.

* update entity tracker

* cleanup

* [ci skip] fix phrasing

* cleanup

* cleanup

* support Citizens

* optimize update if chunk player no change

* configurable threads

* configurable no blocking

* fix pos y and z

* optimize no blocking

* cleanup

* cleanup

* add handle during waitUntilNextTick

* fix entity disappear

* cleanup

* disable nonblocking by default

* [ci skip] add entity slice

* impl fork-join

* fix async locator diff

* optimize queue

* inline iterator

* [ci skip] Update patch header

* cleanup

* improve compatibility

* add license header

* optimize spin wait

* remove queue-size option

* dynamic adjust subtasks

---------

Co-authored-by: Taiyou06 <kaandindar21@gmail.com>
Co-authored-by: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com>
2025-07-16 02:42:37 +09:00

77 lines
4.4 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: hayanesuru <hayanesuru@outlook.jp>
Date: Tue, 6 May 2025 17:44:16 +0900
Subject: [PATCH] Protocol Core
diff --git a/net/minecraft/network/protocol/common/custom/CustomPacketPayload.java b/net/minecraft/network/protocol/common/custom/CustomPacketPayload.java
index 56fd1ed7ccaf96e7eedea60fbdbf7f934939d563..d2f522ea6d0a209496848af073c9af1c45d6b6ce 100644
--- a/net/minecraft/network/protocol/common/custom/CustomPacketPayload.java
+++ b/net/minecraft/network/protocol/common/custom/CustomPacketPayload.java
@@ -46,6 +46,12 @@ public interface CustomPacketPayload {
return;
}
// Leaves end - protocol core
+ // Leaf start - Protocol core
+ if (value instanceof org.dreeam.leaf.protocol.LeafCustomPayload payload) {
+ org.dreeam.leaf.protocol.Protocols.write(buffer, payload);
+ return;
+ }
+ // Leaf end - Protocol core
this.writeCap(buffer, value.type(), value);
}
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
index 9a68042d1efb0da915fc2a302641c9ea6d92f582..225d1604baa2a2c974de5c3ae45d3afd3c7d31df 100644
--- a/net/minecraft/server/MinecraftServer.java
+++ b/net/minecraft/server/MinecraftServer.java
@@ -1804,6 +1804,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
org.leavesmc.leaves.protocol.core.LeavesProtocolManager.handleTick(tickCount); // Leaves - protocol
+ org.dreeam.leaf.protocol.Protocols.tickServer(this); // Leaf - Protocol core
for (int i = 0; i < this.tickables.size(); i++) {
this.tickables.get(i).run();
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index bf50cc20f0254ad4115a9db8ca633e219dcfbaa0..20e90a7a57ef25622cd22dcd76e06a0a69c5f42b 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -808,6 +808,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
}
}
// Purpur end - Ridables
+ org.dreeam.leaf.protocol.Protocols.tickPlayer(this); // Leaf - Protocol core
}
private void updatePlayerAttributes() {
diff --git a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
index 7f4257870c5fca902403e246b9ce569b20dbb364..70eb3ea8094bbbd460452935f62579b027a7925f 100644
--- a/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerCommonPacketListenerImpl.java
@@ -176,6 +176,12 @@ public abstract class ServerCommonPacketListenerImpl implements ServerCommonPack
net.minecraft.network.protocol.PacketUtils.ensureRunningOnSameThread(packet, this, this.server);
+ // Leaf start - Protocol core
+ if (this instanceof ServerGamePacketListenerImpl gamePacketListener) {
+ org.dreeam.leaf.protocol.Protocols.handle(gamePacketListener.player, discardedPayload);
+ }
+ // Leaf end - Protocol core
+
final net.minecraft.resources.ResourceLocation identifier = packet.payload().type().id();
final byte[] data = discardedPayload.data();
try {
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 5a471d847a483ad4e8eb0d752c40a9cbd004cade..17c173ba83ab8bb7c797923ae06599af20a1eed3 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -690,6 +690,7 @@ public abstract class PlayerList {
}
public @Nullable net.kyori.adventure.text.Component remove(ServerPlayer player, net.kyori.adventure.text.Component leaveMessage) {
org.leavesmc.leaves.protocol.core.LeavesProtocolManager.handlePlayerLeave(player); // Leaves - protocol
+ org.dreeam.leaf.protocol.Protocols.disconnected(player); // Leaf - Protocol core
// Paper end - Fix kick event leave message not being sent
org.purpurmc.purpur.task.BossBarTask.removeFromAll(player.getBukkitEntity()); // Purpur - Implement TPSBar
net.minecraft.server.network.ServerGamePacketListenerImpl.afkCooldown.remove(player.getBukkitEntity().getUniqueId()); // Leaf - Improve Purpur AFK system