Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-11-17 13:30:06 +01:00
cab333b217
Don't send requests of every player was found in the global api cache SpigotMC/Spigot@841270ff1e Correctly set the response code for the cached lookups and return the ... SpigotMC/Spigot@f170b7899c Don't try and re-set the global api cache on reload SpigotMC/Spigot@b410a00a66 Use a compile time sneaky throw hack. SpigotMC/Spigot@508462b96b Fix a missed rename in WorldGenGroundBush SpigotMC/Spigot@0614d8fae9
33 Zeilen
1.7 KiB
Diff
33 Zeilen
1.7 KiB
Diff
From dc7ce44f000f973825590134b7c03b3fe7e33440 Mon Sep 17 00:00:00 2001
|
|
From: md_5 <git@md-5.net>
|
|
Date: Sun, 12 Jan 2014 21:07:18 +1100
|
|
Subject: [PATCH] Replace AutoSave Mechanism
|
|
|
|
The problem here is that MinecraftServer.save(..), will attempt to sleep whilst all pending chunks are written to disk, however due to various and complicated bugs, it will wait for an incorrect amount of chunks, which may cause it to sleep for an overly long amount of time. Instead we will mimic the save-all command in its behaviour, which is both safe and performant.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
index 28471d6..8ff8d9f 100644
|
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
|
@@ -583,7 +583,16 @@ public abstract class MinecraftServer implements ICommandListener, Runnable, IMo
|
|
SpigotTimings.worldSaveTimer.startTiming(); // Spigot
|
|
this.methodProfiler.a("save");
|
|
this.u.savePlayers();
|
|
- this.saveChunks(true);
|
|
+ // Spigot Start
|
|
+ // We replace this with saving each individual world as this.saveChunks(...) is broken,
|
|
+ // and causes the main thread to sleep for random amounts of time depending on chunk activity
|
|
+ server.playerCommandState = true;
|
|
+ for (World world : worlds) {
|
|
+ world.getWorld().save();
|
|
+ }
|
|
+ server.playerCommandState = false;
|
|
+ // this.saveChunks(true);
|
|
+ // Spigot End
|
|
this.methodProfiler.b();
|
|
SpigotTimings.worldSaveTimer.stopTiming(); // Spigot
|
|
}
|
|
--
|
|
1.9.1
|
|
|