Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -51,41 +51,11 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.

diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java
index af67b07722bb0125acd081dab767d7e7b360623b..3cb58e799ad0ed0afdeac2d99af51b4981e6e788 100644
--- a/net/minecraft/server/level/ServerChunkCache.java
+++ b/net/minecraft/server/level/ServerChunkCache.java
@@ -502,6 +502,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
if (!this.level.isDebug()) {
ProfilerFiller profilerFiller = Profiler.get();
profilerFiller.push("pollingChunks");
+ this.level.resetIceAndSnowTick(); // Gale - Airplane - optimize random calls in chunk ticking - reset ice & snow tick random
if (this.level.tickRateManager().runsNormally()) {
profilerFiller.push("tickingChunks");
this.tickChunks(profilerFiller, l);
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 54b37fe1ec2977b03cfbd3bd571ac5aec4617170..20009e9980405b883aa2f4dcf7a29c10aec71482 100644
index 54b37fe1ec2977b03cfbd3bd571ac5aec4617170..13f2e956a479b551552974b34092221b24e2c1a6 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -1011,6 +1011,8 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
}
// Paper end - optimise random ticking

+ private int currentIceAndSnowTick = 0; protected void resetIceAndSnowTick() { this.currentIceAndSnowTick = this.simpleRandom.nextInt(16); } // Gale - Airplane - optimize random calls in chunk ticking
+
public void tickChunk(LevelChunk chunk, int randomTickSpeed) {
final ca.spottedleaf.moonrise.common.util.SimpleThreadUnsafeRandom simpleRandom = this.simpleRandom; // Paper - optimise random ticking
ChunkPos pos = chunk.getPos();
@@ -1019,7 +1021,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
ProfilerFiller profilerFiller = Profiler.get();
profilerFiller.push("iceandsnow");

- if (!this.paperConfig().environment.disableIceAndSnow) { // Paper - Option to disable ice and snow
+ if (!this.paperConfig().environment.disableIceAndSnow && (this.currentIceAndSnowTick++ & 15) == 0) { // Paper - Option to disable ice and snow // Gale - Airplane - optimize random calls in chunk ticking - optimize further random ticking
for (int i = 0; i < randomTickSpeed; i++) {
if (simpleRandom.nextInt(48) == 0) { // Paper - optimise random ticking
this.tickPrecipitation(this.getBlockRandomPos(minBlockX, 0, minBlockZ, 15));
@@ -1042,7 +1044,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -1042,7 +1042,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
int minBlockZ = pos.getMinBlockZ();
ProfilerFiller profilerFiller = Profiler.get();
profilerFiller.push("thunder");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,10 +153,10 @@ index d0ca03ace2db83192d35850d29336990f01bc6fe..ca070adc64ac557b8393770bdfd6a396
if (!itemBySlot.isEmpty()) {
list.add(Pair.of(equipmentSlot, itemBySlot.copy()));
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 50f65c4b65d59c56a51459051c7f05673eeed0e1..e0cac20ffde626df53ac4773f02fac23efffced6 100644
index 5b047f14d7dec11ee367034e9cd8962fd8abc13b..d60b197c5c0ef61b7614e07270c81d3d1cad7e7e 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -1437,7 +1437,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -1435,7 +1435,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe

public static List<Entity> getCurrentlyTickingEntities() {
Entity ticking = currentlyTickingEntity.get();
Expand All @@ -179,7 +179,7 @@ index 9ba67227abb8420f72ecfd03f60feaa6433af3c3..6bfc4648e473ee11430e8f8c92f0d536
this.getInventory().equipment.set(value, net.minecraft.world.item.ItemStack.EMPTY);
}
diff --git a/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 34be258b6719d83156a04f51cb77b98dbc465daf..9448fcd3638d8a2356c3895fd315da8075daa945 100644
index 40d9f5ee46af07ba5b8fcdb3ff2af276de700739..5dfd3607dfa0fef169231d21d45398086576ab4b 100644
--- a/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2948,7 +2948,7 @@ public class ServerGamePacketListenerImpl
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ As part of: SportPaper (https://github.com/Electroid/SportPaper)
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)

diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index e0cac20ffde626df53ac4773f02fac23efffced6..ef5756a12cd26173244876b9b85880544865e1c5 100644
index d60b197c5c0ef61b7614e07270c81d3d1cad7e7e..253685348250d3e8a51f0b48e3e376e08dc89a47 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -1793,6 +1793,15 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -1791,6 +1791,15 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe

@Override
public void destroyBlockProgress(int breakerId, BlockPos pos, int progress) {
Expand All @@ -32,7 +32,7 @@ index e0cac20ffde626df53ac4773f02fac23efffced6..ef5756a12cd26173244876b9b8588054
// CraftBukkit start
Player breakerPlayer = null;
Entity entity = this.getEntity(breakerId);
@@ -1809,7 +1818,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -1807,7 +1816,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
.callEvent();
}
// Paper end - Add BlockBreakProgressUpdateEvent
Expand All @@ -41,7 +41,7 @@ index e0cac20ffde626df53ac4773f02fac23efffced6..ef5756a12cd26173244876b9b8588054
if (serverPlayer.level() == this && serverPlayer.getId() != breakerId) {
double d = pos.getX() - serverPlayer.getX();
double d1 = pos.getY() - serverPlayer.getY();
@@ -1820,7 +1829,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -1818,7 +1827,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
}
// CraftBukkit end
if (d * d + d1 * d1 + d2 * d2 < 1024.0) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ index 48e38240eb7fcc6394d44996ed5606b97e52712e..0d476e6e79807f5520d82c01806bd428
this.notificationManager().serverStarted();
return true;
diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java
index 3cb58e799ad0ed0afdeac2d99af51b4981e6e788..7c00644bdb81884813c2c3954f75203634917d74 100644
index af67b07722bb0125acd081dab767d7e7b360623b..98f27aa176fb72bf1ce165309d31b7b8b4bb3ca5 100644
--- a/net/minecraft/server/level/ServerChunkCache.java
+++ b/net/minecraft/server/level/ServerChunkCache.java
@@ -183,6 +183,8 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
Expand All @@ -66,7 +66,7 @@ index 3cb58e799ad0ed0afdeac2d99af51b4981e6e788..7c00644bdb81884813c2c3954f752036

public ServerChunkCache(
ServerLevel level,
@@ -512,6 +514,54 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
@@ -511,6 +513,54 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
this.broadcastChangedChunks(profilerFiller);
profilerFiller.pop();
}
Expand Down Expand Up @@ -121,15 +121,15 @@ index 3cb58e799ad0ed0afdeac2d99af51b4981e6e788..7c00644bdb81884813c2c3954f752036
}

private void broadcastChangedChunks(ProfilerFiller profiler) {
@@ -534,6 +584,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
@@ -533,6 +583,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
// Paper start - Optional per player mob spawns
NaturalSpawner.SpawnState spawnState;
if ((this.spawnFriendlies || this.spawnEnemies) && this.level.paperConfig().entities.spawning.perPlayerMobSpawns) { // don't count mobs when animals and monsters are disabled
+ if (!org.dreeam.leaf.config.modules.async.AsyncMobSpawning.enabled) { // Pufferfish - moved down when async processing
// re-set mob counts
for (ServerPlayer player : this.level.players) {
// Paper start - per player mob spawning backoff
@@ -548,12 +599,16 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
@@ -547,12 +598,16 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
}
// Paper end - per player mob spawning backoff
}
Expand All @@ -149,7 +149,7 @@ index 3cb58e799ad0ed0afdeac2d99af51b4981e6e788..7c00644bdb81884813c2c3954f752036
boolean flag = this.level.getGameRules().get(GameRules.SPAWN_MOBS) && !this.level.players().isEmpty(); // CraftBukkit
int i = this.level.getGameRules().get(GameRules.RANDOM_TICK_SPEED);
List<MobCategory> filteredSpawningCategories;
@@ -567,7 +622,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
@@ -566,7 +621,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
}
// Paper end - PlayerNaturallySpawnCreaturesEvent
boolean flag1 = this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) != 0L && this.level.getGameTime() % this.level.ticksPerSpawnCategory.getLong(org.bukkit.entity.SpawnCategory.ANIMAL) == 0L; // CraftBukkit
Expand All @@ -158,7 +158,7 @@ index 3cb58e799ad0ed0afdeac2d99af51b4981e6e788..7c00644bdb81884813c2c3954f752036
} else {
filteredSpawningCategories = List.of();
}
@@ -585,7 +640,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
@@ -584,7 +639,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
profiler.popPush("tickSpawningChunks");

for (LevelChunk levelChunk : list) {
Expand All @@ -167,7 +167,7 @@ index 3cb58e799ad0ed0afdeac2d99af51b4981e6e788..7c00644bdb81884813c2c3954f752036
}
} finally {
list.clear();
@@ -609,7 +664,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
@@ -608,7 +663,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
}

if (!spawnCategories.isEmpty()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@ index 2a3b10c5e031ef44a2b53bc4fdc6e86c917f75d4..657b83a825080d1349043b6ef82624ae
this.get("generator-settings", property -> GsonHelper.parse(!property.isEmpty() ? property : "{}"), new JsonObject()),
this.get("level-type", property -> property.toLowerCase(Locale.ROOT), WorldPresets.NORMAL.identifier().toString())
diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java
index 7c00644bdb81884813c2c3954f75203634917d74..3b753337e4ce101057931d320b4a1267d00e9432 100644
index 98f27aa176fb72bf1ce165309d31b7b8b4bb3ca5..83e02e02aa3a95acdc2bc914307d7577fec87e8f 100644
--- a/net/minecraft/server/level/ServerChunkCache.java
+++ b/net/minecraft/server/level/ServerChunkCache.java
@@ -691,6 +691,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
@@ -690,6 +690,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
}

public ChunkGenerator getGenerator() {
Expand All @@ -48,7 +48,7 @@ index 7c00644bdb81884813c2c3954f75203634917d74..3b753337e4ce101057931d320b4a1267
}

diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 4cf3b7169370d82309d3a3fd04f078c52a1d535b..b8c3b268f910973ddcde2ea13b43b66002dc42e4 100644
index 8a643f500e78ace5379fc077aba581e034a4606d..b14460685cb324336a03867fa78d390d5c7d1bf0 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -661,6 +661,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ ThreadUnsafeRandom (Moonrise): 102,265,100 ns
SimpleThreadUnsafeRandom (Moonrise): 97,054,600 ns

diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java
index 3b753337e4ce101057931d320b4a1267d00e9432..8ebc3aaa79526cc489885bc817d0c9880ab6ca55 100644
index 83e02e02aa3a95acdc2bc914307d7577fec87e8f..551d189457c8a65763476edd84b50c156ac916cc 100644
--- a/net/minecraft/server/level/ServerChunkCache.java
+++ b/net/minecraft/server/level/ServerChunkCache.java
@@ -155,7 +155,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
Expand All @@ -27,7 +27,7 @@ index 3b753337e4ce101057931d320b4a1267d00e9432..8ebc3aaa79526cc489885bc817d0c988
final ServerLevel world = this.level;
final int randomTickSpeed = world.getGameRules().get(GameRules.RANDOM_TICK_SPEED);
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index b8c3b268f910973ddcde2ea13b43b66002dc42e4..f67ce1116e7676ec496b518b5ee82c11ff11758c 100644
index b14460685cb324336a03867fa78d390d5c7d1bf0..3a93eb9819b2b9109762e21e28c3868f143867aa 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -979,7 +979,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
Expand All @@ -39,8 +39,8 @@ index b8c3b268f910973ddcde2ea13b43b66002dc42e4..f67ce1116e7676ec496b518b5ee82c11
final boolean doubleTickFluids = !ca.spottedleaf.moonrise.common.PlatformHooks.get().configFixMC224294();

final ChunkPos cpos = chunk.getPos();
@@ -1028,7 +1028,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
private int currentIceAndSnowTick = 0; protected void resetIceAndSnowTick() { this.currentIceAndSnowTick = this.simpleRandom.nextInt(16); } // Gale - Airplane - optimize random calls in chunk ticking
@@ -1026,7 +1026,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
// Paper end - optimise random ticking

public void tickChunk(LevelChunk chunk, int randomTickSpeed) {
- final ca.spottedleaf.moonrise.common.util.SimpleThreadUnsafeRandom simpleRandom = this.simpleRandom; // Paper - optimise random ticking
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ Subject: [PATCH] Remove stream in CraftWorld#spawnParticle


diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index f67ce1116e7676ec496b518b5ee82c11ff11758c..7fc8e579ddef06513e84b9f84e29c87a28d1d80c 100644
index 3a93eb9819b2b9109762e21e28c3868f143867aa..4cd9b541108fb0b82aed75077a7ae583458fe560 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -2216,7 +2216,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2214,7 +2214,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
Expand All @@ -17,7 +17,7 @@ index f67ce1116e7676ec496b518b5ee82c11ff11758c..7fc8e579ddef06513e84b9f84e29c87a
if (this.sendParticles(serverPlayer, overrideLimiter, x, y, z, clientboundLevelParticlesPacket)) {
i++;
}
@@ -2225,6 +2225,46 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2223,6 +2223,46 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
return i;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ index 8a5c37cf572abc6b9526648d3c8ec92b7af37e3d..9294a23f0d2ed50cb04315cdfabb3b8a
// Paper end - rewrite chunk system
}
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 7fc8e579ddef06513e84b9f84e29c87a28d1d80c..1cf83242729d8e0a92762127e6f0d840a2ed2f5c 100644
index 4cd9b541108fb0b82aed75077a7ae583458fe560..07f54f4e83dc20ef4fc2e5f8c0422423955a437f 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -541,7 +541,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
Expand All @@ -131,7 +131,7 @@ index 7fc8e579ddef06513e84b9f84e29c87a28d1d80c..1cf83242729d8e0a92762127e6f0d840
return;
}

@@ -2780,7 +2780,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2778,7 +2778,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe

public boolean areEntitiesActuallyLoadedAndTicking(ChunkPos chunkPos) {
// Paper start - rewrite chunk system
Expand All @@ -140,7 +140,7 @@ index 7fc8e579ddef06513e84b9f84e29c87a28d1d80c..1cf83242729d8e0a92762127e6f0d840
return chunkHolder != null && chunkHolder.isEntityTickingReady();
// Paper end - rewrite chunk system
}
@@ -2800,7 +2800,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -2798,7 +2798,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe

public boolean canSpawnEntitiesInChunk(ChunkPos chunkPos) {
// Paper start - rewrite chunk system
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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 1cf83242729d8e0a92762127e6f0d840a2ed2f5c..8f6cbc40c59800f2e1ee08c3ea0f12c9daa375c3 100644
index 07f54f4e83dc20ef4fc2e5f8c0422423955a437f..80252baaf853099b0584beacac6bbcc9821e7079 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -854,6 +854,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
Expand All @@ -25,11 +25,12 @@ index 1cf83242729d8e0a92762127e6f0d840a2ed2f5c..8f6cbc40c59800f2e1ee08c3ea0f12c9
profilerFiller.pop();
if (true) { // Paper - rewrite chunk system
Entity vehicle = entity.getVehicle();
@@ -1027,6 +1028,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe

private int currentIceAndSnowTick = 0; protected void resetIceAndSnowTick() { this.currentIceAndSnowTick = this.simpleRandom.nextInt(16); } // Gale - Airplane - optimize random calls in chunk ticking
@@ -1025,6 +1026,8 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
}
// Paper end - optimise random ticking

+ public final org.dreeam.leaf.world.DespawnMap despawnMap = new org.dreeam.leaf.world.DespawnMap(); // Leaf - optimize despawn
+
public void tickChunk(LevelChunk chunk, int randomTickSpeed) {
final net.minecraft.world.level.levelgen.BitRandomSource simpleRandom = this.simpleRandom; // Paper - optimise random ticking // Leaf - Faster random generator - upcasting
ChunkPos pos = chunk.getPos();
Loading