mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2024-11-04 18:02:27 +01:00
f295cbb0ed
Upstream/An Sidestream has released updates that appears to apply and compile correctly This update has NOT been tested by YatopiaMC and as with ANY update, please do your own testing. Airplane Changes: e71967b Spelling error 5ffdcdb Merge branch 'perf/reduce-allocs' 5f350d7 Minimize shouldDoLightning for inlining 271a374 Reduce memory allocations
83 lines
4.2 KiB
Diff
83 lines
4.2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: MrIvanPlays <ivan@mrivanplays.com>
|
|
Date: Sun, 9 Aug 2020 16:58:18 -0500
|
|
Subject: [PATCH] Optimize some stuff in WorldServer ticking
|
|
|
|
Replaced some streams and some array lists with glue lists
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/WorldServer.java b/src/main/java/net/minecraft/server/WorldServer.java
|
|
index 4d47cca6db7a771677c31ade9425ed3ad83393ea..17d728bf4f8393defd0a6f274d32f2ce926232a3 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
|
@@ -780,12 +780,21 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
this.server.getPlayerList().sendAll(new PacketPlayOutGameStateChange(PacketPlayOutGameStateChange.i, this.thunderLevel));
|
|
}
|
|
// */
|
|
- for (int idx = 0; idx < this.players.size(); ++idx) {
|
|
- if (((EntityPlayer) this.players.get(idx)).world == this) {
|
|
- ((EntityPlayer) this.players.get(idx)).tickWeather();
|
|
+ // Yatopia start
|
|
+ boolean sleepyMatch = true;
|
|
+ for (EntityPlayer player : players) {
|
|
+ if (player.world == this) {
|
|
+ player.tickWeather();
|
|
+ if (flag != this.isRaining()) player.setPlayerWeather((!flag ? WeatherType.DOWNFALL : WeatherType.CLEAR), false);
|
|
+ player.updateWeather(this.lastRainLevel, this.rainLevel, this.lastThunderLevel, this.thunderLevel);
|
|
+ }
|
|
+ if (sleepyMatch && !player.isSpectator() && !player.isDeeplySleeping() && !player.fauxSleeping) {
|
|
+ sleepyMatch = false;
|
|
}
|
|
+ // Yatopia end
|
|
}
|
|
|
|
+ /* // Yatopia start - moved up
|
|
if (flag != this.isRaining()) {
|
|
// Only send weather packets to those affected
|
|
for (int idx = 0; idx < this.players.size(); ++idx) {
|
|
@@ -800,11 +809,9 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
}
|
|
}
|
|
// CraftBukkit end
|
|
+ */ // Yatopia end
|
|
|
|
- if (this.everyoneSleeping && this.players.stream().noneMatch((entityplayer) -> {
|
|
- return !entityplayer.isSpectator() && !entityplayer.isDeeplySleeping() && !entityplayer.fauxSleeping && !(purpurConfig.idleTimeoutCountAsSleeping && entityplayer.isAfk()); // CraftBukkit // Purpur
|
|
- })) {
|
|
- // CraftBukkit start
|
|
+ if (this.everyoneSleeping && sleepyMatch) { // Yatopia
|
|
long l = this.worldData.getDayTime() + 24000L;
|
|
TimeSkipEvent event = new TimeSkipEvent(this.getWorld(), TimeSkipEvent.SkipReason.NIGHT_SKIP, (l - l % 24000L) - this.getDayTime());
|
|
if (this.getGameRules().getBoolean(GameRules.DO_DAYLIGHT_CYCLE)) {
|
|
@@ -1030,9 +1037,9 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
}
|
|
|
|
private void wakeupPlayers() {
|
|
- (this.players.stream().filter(EntityLiving::isSleeping).collect(Collectors.toList())).forEach((entityplayer) -> { // CraftBukkit - decompile error
|
|
+ for (EntityPlayer entityplayer : players) { if (entityplayer.isSleeping()) { // Yatopia
|
|
entityplayer.wakeup(false, false);
|
|
- });
|
|
+ }} // Yatopia
|
|
}
|
|
|
|
// Paper start - optimise random block ticking
|
|
@@ -1832,8 +1839,9 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
// Spigot start
|
|
if ( entity instanceof EntityHuman )
|
|
{
|
|
- this.getMinecraftServer().worldServer.values().stream().map( WorldServer::getWorldPersistentData ).forEach( (worldData) ->
|
|
+ for ( WorldServer worldServer : getMinecraftServer().worldServer.values() ) // Yatopia
|
|
{
|
|
+ WorldPersistentData worldData = worldServer.getWorldPersistentData(); // Yatopia
|
|
for (Object o : worldData.data.values() )
|
|
{
|
|
if ( o instanceof WorldMap )
|
|
@@ -1850,7 +1858,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
}
|
|
}
|
|
}
|
|
- } );
|
|
+ } // Yatopia
|
|
}
|
|
// Spigot end
|
|
// Spigot Start
|