mirror of
https://github.com/YatopiaMC/Yatopia.git
synced 2025-02-18 05:11:20 +01:00
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. Paper Changes: 0ea308381 Updated Upstream (Bukkit/CraftBukkit) Tuinity Changes: a539774 Fix off-by-one for BasicEntityList 0763cd1 Updated Upstream (Paper) ad35543 Various optimisations 2006b9b Discord vanity URL Purpur Changes: 4086888 [ci-skip] Fix formatting issue in previous commit 70ec0e2 Updated Upstream (Paper & Tuinity) d7d72b3 Remove unused event from api 6ec1ed7 [ci-skip] hmm Airplane Changes: 7dc1546 Updated Upstream (Tuinity) 04fd4dc Updated Upstream (Tuinity) Empirecraft Changes: 586aef63 Prevent grindstones from overstacking items 4cf96630 Updated Paper
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 d4672e7fa899a39bae2d9179472b22db28a58f19..cca6b3585485162e8158e43dee4f8b45d4e30bea 100644
|
|
--- a/src/main/java/net/minecraft/server/WorldServer.java
|
|
+++ b/src/main/java/net/minecraft/server/WorldServer.java
|
|
@@ -885,12 +885,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) {
|
|
@@ -905,11 +914,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)) {
|
|
@@ -1135,9 +1142,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
|
|
@@ -1930,8 +1937,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 )
|
|
@@ -1948,7 +1956,7 @@ public class WorldServer extends World implements GeneratorAccessSeed {
|
|
}
|
|
}
|
|
}
|
|
- } );
|
|
+ } // Yatopia
|
|
}
|
|
// Spigot end
|
|
// Spigot Start
|