9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2026-01-04 15:41:40 +00:00

Remove stream in CraftWorld#spawnParticle

This commit is contained in:
Dreeam
2025-10-29 02:18:30 -04:00
parent 74d1b53d9f
commit c3b9ad30b3
154 changed files with 129 additions and 42 deletions

View File

@@ -0,0 +1,66 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com>
Date: Wed, 29 Oct 2025 02:13:08 -0400
Subject: [PATCH] Remove stream in CraftWorld#spawnParticle
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 220061621a676e5cefd6a442b40f216f6dced60c..c73d4ca35ad35b21a9df283a18928d7738c172d0 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -2108,7 +2108,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
for (int i1 = 0; i1 < receivers.size(); i1++) { // Paper - particle API
ServerPlayer serverPlayer = receivers.get(i1); // Paper - particle API
- if (sender != null && !serverPlayer.getBukkitEntity().canSee(sender.getBukkitEntity())) continue; // CraftBukkit
+ if (sender != null && !serverPlayer.getBukkitEntity().canSee(sender.getBukkitEntity())) continue; // CraftBukkit // Leaf - Remove stream in CraftWorld#spawnParticle - diff on change
if (this.sendParticles(serverPlayer, overrideLimiter, posX, posY, posZ, clientboundLevelParticlesPacket)) {
i++;
}
@@ -2117,6 +2117,46 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
return i;
}
+ // Leaf start - Remove stream in CraftWorld#spawnParticle
+ // Copy from ServerLevel#sendParticlesSource
+ public <T extends ParticleOptions> void sendParticlesSourceBukkit(
+ List<org.bukkit.entity.Player> bukkitReceivers,
+ @Nullable Entity sender,
+ T type,
+ boolean overrideLimiter,
+ boolean alwaysShow,
+ double posX,
+ double posY,
+ double posZ,
+ int particleCount,
+ double xOffset,
+ double yOffset,
+ double zOffset,
+ double speed
+ ) {
+ ClientboundLevelParticlesPacket clientboundLevelParticlesPacket = new ClientboundLevelParticlesPacket(
+ type, overrideLimiter, alwaysShow, posX, posY, posZ, (float) xOffset, (float) yOffset, (float) zOffset, (float) speed, particleCount
+ );
+
+ if (bukkitReceivers == null) {
+ for (int i = 0, size = players.size(); i < size; i++) { // Paper - particle API
+ ServerPlayer serverPlayer = players.get(i); // Paper - particle API
+ if (sender != null && !serverPlayer.getBukkitEntity().canSee(sender.getBukkitEntity())) continue; // CraftBukkit
+
+ this.sendParticles(serverPlayer, overrideLimiter, posX, posY, posZ, clientboundLevelParticlesPacket);
+ }
+ } else {
+ for (int i = 0, size = bukkitReceivers.size(); i < size; i++) { // Paper - particle API
+ org.bukkit.entity.Player bukkitPlayer = bukkitReceivers.get(i); // Paper - particle API
+ ServerPlayer serverPlayer = ((org.bukkit.craftbukkit.entity.CraftPlayer) bukkitPlayer).getHandle();
+ if (sender != null && !serverPlayer.getBukkitEntity().canSee(sender.getBukkitEntity())) continue; // CraftBukkit
+
+ this.sendParticles(serverPlayer, overrideLimiter, posX, posY, posZ, clientboundLevelParticlesPacket);
+ }
+ }
+ }
+ // Leaf end - Remove stream in CraftWorld#spawnParticle
+
public <T extends ParticleOptions> boolean sendParticles(
ServerPlayer player,
T particle,

View File

@@ -1190,7 +1190,7 @@ index 0dee18df07c979da6125a4e7a955343e44d67ac2..f033849629518a2afb60cf5bbf3de5ae
if (this.entity instanceof ServerPlayer) {
((ServerPlayer)this.entity).connection.send(packet);
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 220061621a676e5cefd6a442b40f216f6dced60c..cbc0b9b0ed6537f0cf0997d08fbf81491bf51d1f 100644
index c73d4ca35ad35b21a9df283a18928d7738c172d0..d43e2d207e143f35536626c0f3de16dd295b5866 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -216,6 +216,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -1209,7 +1209,7 @@ index 220061621a676e5cefd6a442b40f216f6dced60c..cbc0b9b0ed6537f0cf0997d08fbf8149
}
@Override
@@ -2527,7 +2529,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2567,7 +2569,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@Override
public LevelEntityGetter<Entity> getEntities() {
@@ -1218,7 +1218,7 @@ index 220061621a676e5cefd6a442b40f216f6dced60c..cbc0b9b0ed6537f0cf0997d08fbf8149
return this.moonrise$getEntityLookup(); // Paper - rewrite chunk system
}
@@ -2799,7 +2801,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2839,7 +2841,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
}
map.carriedByPlayers.remove(player);

View File

@@ -119,7 +119,7 @@ index 50bc5b940812432bc472e5b272582efb8bbfc7a7..d55677f66ec7e2d4f2a96556f874e719
// Paper end - rewrite chunk system
}
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index cbc0b9b0ed6537f0cf0997d08fbf81491bf51d1f..2dfdf64386c75557050e458fd56644f909950865 100644
index d43e2d207e143f35536626c0f3de16dd295b5866..175c4ab639f1516de06e3a16e89e779c59754e1c 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -508,7 +508,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -131,7 +131,7 @@ index cbc0b9b0ed6537f0cf0997d08fbf81491bf51d1f..2dfdf64386c75557050e458fd56644f9
return;
}
@@ -2612,7 +2612,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2652,7 +2652,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
public boolean areEntitiesActuallyLoadedAndTicking(ChunkPos chunkPos) {
// Paper start - rewrite chunk system
@@ -140,7 +140,7 @@ index cbc0b9b0ed6537f0cf0997d08fbf81491bf51d1f..2dfdf64386c75557050e458fd56644f9
return chunkHolder != null && chunkHolder.isEntityTickingReady();
// Paper end - rewrite chunk system
}
@@ -2627,7 +2627,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2667,7 +2667,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
public boolean canSpawnEntitiesInChunk(ChunkPos chunkPos) {
// Paper start - rewrite chunk system

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] optimize mob despawn
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 2dfdf64386c75557050e458fd56644f909950865..30bb5b9d021d01dea272313763b0748856ce28a6 100644
index 175c4ab639f1516de06e3a16e89e779c59754e1c..073dec29d48b5ab8dd379a1e66a0de6ef101ca1f 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -797,13 +797,19 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe

View File

@@ -379,7 +379,7 @@ index eaaa66c4d86d4ebda0acf8f1dbe8ecb55aa28285..908cd08e33fed1c4cd4bd34c3e63cbbe
continue;
}
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 30bb5b9d021d01dea272313763b0748856ce28a6..e3718c93b05fa87781eb916ebd4e54fb82b2808c 100644
index 073dec29d48b5ab8dd379a1e66a0de6ef101ca1f..e0bd79a371e2c2d370518ae1b9c31064304f7c7d 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -180,7 +180,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe

View File

@@ -27,7 +27,7 @@ index 51efe9aadb377c35d6ed2b7eadead3c9e1c745f8..d3c6f7f78d895cca4abe1da79abb595c
CrashReport crashReport = CrashReport.forThrowable(levelTickingException, "Exception ticking world");
serverLevel.fillReportDetails(crashReport);
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index f1ce73c615f1804c1f44f140dc17965877937078..52eab2c9eaf7f9f1de82d096a3cbe85aabf4ed10 100644
index e0bd79a371e2c2d370518ae1b9c31064304f7c7d..8866cf1a431a8fc2188d05b3e1365ad6e21af52f 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -573,6 +573,12 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe

View File

@@ -234,7 +234,7 @@ index f12b9e4e8a78c713782af548d1cb15ef363305b4..99a6d549d968b5df227c3b96febf0e3a
player.getInventory().removeItem(ammo);
}
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
index 2087557416757b17ccdc24a59354eee67ce85627..7447b5e99c9aa4b3507839d0653fb0582c7a72ad 100644
index 779ed937e35ebf10ce49a04bde31cd78de264ba4..612d8f8aa1d4cce646fb3a878d62ce8136925308 100644
--- a/net/minecraft/world/level/Level.java
+++ b/net/minecraft/world/level/Level.java
@@ -172,6 +172,7 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl

View File

@@ -9,7 +9,7 @@ Leaf: ~48ms (-36%)
This should help drastically on the farms that use actively changing fluids.
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index f416e95cea3dfcc92bca33b1be68f7f3f773439e..19e28494f3bee1d8fe47264da07ca86e46e6b249 100644
index 8866cf1a431a8fc2188d05b3e1365ad6e21af52f..e49cef515a605311ba6afca4101ef75e5c8378eb 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -1450,6 +1450,10 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe

View File

@@ -25,7 +25,7 @@ index d638821595138ef972163925136eb57207b31719..02c02314a4a6a7a6da427f0d064dbc61
}
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
index 7447b5e99c9aa4b3507839d0653fb0582c7a72ad..ceba364a50fc96865cadf30674655a109baae06d 100644
index 612d8f8aa1d4cce646fb3a878d62ce8136925308..45260128dbeb29891fa80aab5256623def3bcabe 100644
--- a/net/minecraft/world/level/Level.java
+++ b/net/minecraft/world/level/Level.java
@@ -1179,6 +1179,12 @@ public abstract class Level implements LevelAccessor, UUIDLookup<Entity>, AutoCl

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Micro optimizations for random tick
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 19e28494f3bee1d8fe47264da07ca86e46e6b249..900ea52d7da342522db3c206ed671d881a747f4b 100644
index e49cef515a605311ba6afca4101ef75e5c8378eb..29158e9cb73aa6670c6a0fa494cc8011b7dfaa95 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -1048,7 +1048,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe

View File

@@ -27,7 +27,7 @@ index 525f29f3ecd7eb12e3d7447898005d3a6d62c093..24f0d13922748eb8a96fd83f14204984
public static final int GENERATED_TICKET_LEVEL = ChunkHolderManager.FULL_LOADED_TICKET_LEVEL;
public static final int LOADED_TICKET_LEVEL = ChunkTaskScheduler.getTicketLevel(ChunkStatus.EMPTY);
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 26a0f9aa63596572f10de5e0b435660e379bcf78..0261568809e7e67431a41dbb78bfb4349ee2b21a 100644
index 8f5d037fcd307b88abfae13e590e987200114b8a..e0ca8832b08009bfd6ad906143acd10400b96eb6 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -440,6 +440,13 @@ public abstract class PlayerList {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Optimize BlockEntities tickersInLevel
diff --git a/net/minecraft/world/level/chunk/LevelChunk.java b/net/minecraft/world/level/chunk/LevelChunk.java
index 514a918fff9bf60293fbfa6def4a2f9fead30825..a3674ddb883eecb255279375a5e2eece7e016c0f 100644
index 248058bdc7339a327d80a3db3a126cda6c4b6705..af4abc9bef1b147bd6435923177968258873113e 100644
--- a/net/minecraft/world/level/chunk/LevelChunk.java
+++ b/net/minecraft/world/level/chunk/LevelChunk.java
@@ -75,7 +75,7 @@ public class LevelChunk extends ChunkAccess implements ca.spottedleaf.moonrise.p

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Only tick items at hand
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index be9d5c760e192df17a6513b819f956ad526e6d67..228838f51d9906f37e75838bc0b18037d2bd2bb2 100644
index 1ac4ad7e9adf9840951d6d22c3a49e072eb3183f..b7e5c7b681b2775367f707825b132ce6e00e570a 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -848,12 +848,19 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Optimise player movement checks
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index 7160a31e2d6b4315d3aa46b857a7a175fd7d08f5..d62d82dfab6fff45ca53c38510443adb85caeb6a 100644
index 23ee355071a3dcfdbff66a4816f5ab9e933116bc..722aee1df41ee3a0d39137963724cf86e9853d08 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -1183,7 +1183,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Add configurable death item drop knockback settings
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 228838f51d9906f37e75838bc0b18037d2bd2bb2..896e50276e4e70f694562f0626dc53d3ecd21258 100644
index b7e5c7b681b2775367f707825b132ce6e00e570a..9f4bed1c2211f58ceda837385facf36137d27200 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -1067,7 +1067,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Optimize getScaledTrackingDistance
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
index dd6e59fea9e8a9e7660649c491eec30e1055f459..29c111e9576063b510fd2f4e56da518881b29c80 100644
index 2139fc5c3c3e6b45e148d6f8798b9fbfcdef626c..ee20dd09bba40a4a98df501614d208552905c3cd 100644
--- a/net/minecraft/server/dedicated/DedicatedServer.java
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
@@ -777,7 +777,13 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Optimize isEyeInFluid
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index f89f449c325845e334a5d710211a61280e5ce862..634d870b81dcb4491889811aaf904e8917f36c04 100644
index 9f4bed1c2211f58ceda837385facf36137d27200..083d0086d1afdee5961401bcb10ad6e7811dc12f 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -1914,7 +1914,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -18,7 +18,7 @@ index f89f449c325845e334a5d710211a61280e5ce862..634d870b81dcb4491889811aaf904e89
if (rounded > 0) {
this.awardStat(Stats.WALK_UNDER_WATER_ONE_CM, rounded);
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
index acd8041cd984ff1d4c424d9b3f4c1a21022ec6d4..7c625f9fee3887326518e8e38cb4f04e72a4dbf7 100644
index 722aee1df41ee3a0d39137963724cf86e9853d08..d50464e802455c39625701512930d6eb5f1da65b 100644
--- a/net/minecraft/world/entity/Entity.java
+++ b/net/minecraft/world/entity/Entity.java
@@ -288,7 +288,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess

View File

@@ -188,7 +188,7 @@ index 908cd08e33fed1c4cd4bd34c3e63cbbe84ffead4..f5b58c181726536bedabd4b6f64769e3
}
}
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 900ea52d7da342522db3c206ed671d881a747f4b..cab92314a479e50ca0d6402d3a6da161546ab5f7 100644
index 29158e9cb73aa6670c6a0fa494cc8011b7dfaa95..4a21cafb1895236744693cf924843fa82428ce41 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -1098,6 +1098,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe

Some files were not shown because too many files have changed in this diff Show More