Do not use worldgen executor for api profile completions

We cannot put blocking network I/O onto the worldgen threads,
this will crash the server if it stalls
This commit is contained in:
Spottedleaf 2022-07-03 14:55:56 -07:00
parent ed79fc947a
commit 41647af74c
590 changed files with 175 additions and 162 deletions

View File

@ -10,13 +10,13 @@ out due to a sync load, as the worldgen threads will be
stalling on profile lookups. stalling on profile lookups.
diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java diff --git a/src/main/java/net/minecraft/Util.java b/src/main/java/net/minecraft/Util.java
index 5f9e3d37c3ba79d26806374d73f87328cebb562d..206c6ce227ba19620185ac835af28d67caa76c40 100644 index d7e22ddf89619b58516ccef1d75a4c33df61b73c..33ec7786cdf8c32e905d192fc8364418e47404d5 100644
--- a/src/main/java/net/minecraft/Util.java --- a/src/main/java/net/minecraft/Util.java
+++ b/src/main/java/net/minecraft/Util.java +++ b/src/main/java/net/minecraft/Util.java
@@ -80,6 +80,22 @@ public class Util { @@ -80,6 +80,22 @@ public class Util {
private static final AtomicInteger WORKER_COUNT = new AtomicInteger(1); private static final AtomicInteger WORKER_COUNT = new AtomicInteger(1);
private static final ExecutorService BOOTSTRAP_EXECUTOR = makeExecutor("Bootstrap", -2); // Paper - add -2 priority private static final ExecutorService BOOTSTRAP_EXECUTOR = makeExecutor("Bootstrap");
private static final ExecutorService BACKGROUND_EXECUTOR = makeExecutor("Main", -1); // Paper - add -1 priority private static final ExecutorService BACKGROUND_EXECUTOR = makeExecutor("Main");
+ // Paper start - don't submit BLOCKING PROFILE LOOKUPS to the world gen thread + // Paper start - don't submit BLOCKING PROFILE LOOKUPS to the world gen thread
+ public static final ExecutorService PROFILE_EXECUTOR = Executors.newFixedThreadPool(2, new java.util.concurrent.ThreadFactory() { + public static final ExecutorService PROFILE_EXECUTOR = Executors.newFixedThreadPool(2, new java.util.concurrent.ThreadFactory() {
+ +
@ -37,10 +37,10 @@ index 5f9e3d37c3ba79d26806374d73f87328cebb562d..206c6ce227ba19620185ac835af28d67
public static LongSupplier timeSource = System::nanoTime; public static LongSupplier timeSource = System::nanoTime;
public static final Ticker TICKER = new Ticker() { public static final Ticker TICKER = new Ticker() {
diff --git a/src/main/java/net/minecraft/server/players/GameProfileCache.java b/src/main/java/net/minecraft/server/players/GameProfileCache.java diff --git a/src/main/java/net/minecraft/server/players/GameProfileCache.java b/src/main/java/net/minecraft/server/players/GameProfileCache.java
index 8d86645ef264287d01203afd7bba516e78be5743..4dff88bdf14675718572e4b3720c0250ce6e730e 100644 index c7edbd12361cfd3dcf1359917d579fae4c3cc8a7..6c8a1d9c7696fa55dae6ba5e4ea50a0ffc7ea543 100644
--- a/src/main/java/net/minecraft/server/players/GameProfileCache.java --- a/src/main/java/net/minecraft/server/players/GameProfileCache.java
+++ b/src/main/java/net/minecraft/server/players/GameProfileCache.java +++ b/src/main/java/net/minecraft/server/players/GameProfileCache.java
@@ -207,7 +207,7 @@ public class GameProfileCache { @@ -181,7 +181,7 @@ public class GameProfileCache {
} else { } else {
this.requests.put(username, CompletableFuture.supplyAsync(() -> { this.requests.put(username, CompletableFuture.supplyAsync(() -> {
return this.get(username); return this.get(username);
@ -62,3 +62,16 @@ index 0c7e29b589ab106013d979a20edc415b4b32a677..c5d5d90d10b30f30d1262367b3d75df4
Util.ifElse(profile, (profilex) -> { Util.ifElse(profile, (profilex) -> {
Property property = Iterables.getFirst(profilex.getProperties().get("textures"), (Property)null); Property property = Iterables.getFirst(profilex.getProperties().get("textures"), (Property)null);
if (property == null) { if (property == null) {
diff --git a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
index 2d49bd6f3f017d43dfaa23cedf35040b64bcdcf8..9edc5e73819e0b55372f77c5e292eece74d837c7 100644
--- a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
+++ b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
@@ -121,7 +121,7 @@ public final class CraftPlayerProfile implements PlayerProfile {
@Override
public CompletableFuture<PlayerProfile> update() {
- return CompletableFuture.supplyAsync(this::getUpdatedProfile, Util.backgroundExecutor());
+ return CompletableFuture.supplyAsync(this::getUpdatedProfile, Util.PROFILE_EXECUTOR); // Paper - not a good idea to use BLOCKING OPERATIONS on the worldgen executor
}
private CraftPlayerProfile getUpdatedProfile() {

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Add UnknownCommandEvent
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 49d0e5e5cf1c529cbd0f4c58c88acf802f42a5bd..cf913f0678178d03c63eaa2b7a67e18abe17a7c5 100644 index 20d1fafc33f207f5e922df9fa5e152e003717a1c..c55a18eadc2bef0c98abd46898e10a5110212c68 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -888,7 +888,13 @@ public final class CraftServer implements Server { @@ -888,7 +888,13 @@ public final class CraftServer implements Server {

View File

@ -7,7 +7,7 @@ Establishes base extension of profile systems for future edits too
diff --git a/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java diff --git a/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java
new file mode 100644 new file mode 100644
index 0000000000000000000000000000000000000000..d945ea3484d0350096046d43112490b94e3b9bcd index 0000000000000000000000000000000000000000..7a5b24419507d00817aa3e8950d89f5174823387
--- /dev/null --- /dev/null
+++ b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java +++ b/src/main/java/com/destroystokyo/paper/profile/CraftPlayerProfile.java
@@ -0,0 +1,399 @@ @@ -0,0 +1,399 @@
@ -185,7 +185,7 @@ index 0000000000000000000000000000000000000000..d945ea3484d0350096046d43112490b9
+ final CraftPlayerProfile clone = clone(); + final CraftPlayerProfile clone = clone();
+ clone.complete(true); + clone.complete(true);
+ return clone; + return clone;
+ }, Util.backgroundExecutor()); + }, Util.PROFILE_EXECUTOR);
+ } + }
+ +
+ @Override + @Override
@ -599,7 +599,7 @@ index a48a12a31a3d09a9373b688dcc093035f8f8a300..97b29bcb20e199c2d02457f8025e67e2
String s = (String) Optional.ofNullable((String) optionset.valueOf("world")).orElse(dedicatedserversettings.getProperties().levelName); String s = (String) Optional.ofNullable((String) optionset.valueOf("world")).orElse(dedicatedserversettings.getProperties().levelName);
LevelStorageSource convertable = LevelStorageSource.createDefault(file.toPath()); LevelStorageSource convertable = LevelStorageSource.createDefault(file.toPath());
diff --git a/src/main/java/net/minecraft/server/players/GameProfileCache.java b/src/main/java/net/minecraft/server/players/GameProfileCache.java diff --git a/src/main/java/net/minecraft/server/players/GameProfileCache.java b/src/main/java/net/minecraft/server/players/GameProfileCache.java
index c7edbd12361cfd3dcf1359917d579fae4c3cc8a7..2a4f8aa6697ed6144440970c9abaf9f6e1a2c2ce 100644 index 6c8a1d9c7696fa55dae6ba5e4ea50a0ffc7ea543..2347c7b44793aabe431b57bb1b44935fefbda6fe 100644
--- a/src/main/java/net/minecraft/server/players/GameProfileCache.java --- a/src/main/java/net/minecraft/server/players/GameProfileCache.java
+++ b/src/main/java/net/minecraft/server/players/GameProfileCache.java +++ b/src/main/java/net/minecraft/server/players/GameProfileCache.java
@@ -136,6 +136,17 @@ public class GameProfileCache { @@ -136,6 +136,17 @@ public class GameProfileCache {
@ -621,7 +621,7 @@ index c7edbd12361cfd3dcf1359917d579fae4c3cc8a7..2a4f8aa6697ed6144440970c9abaf9f6
String s1 = name.toLowerCase(Locale.ROOT); String s1 = name.toLowerCase(Locale.ROOT);
GameProfileCache.GameProfileInfo usercache_usercacheentry = (GameProfileCache.GameProfileInfo) this.profilesByName.get(s1); GameProfileCache.GameProfileInfo usercache_usercacheentry = (GameProfileCache.GameProfileInfo) this.profilesByName.get(s1);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index cf913f0678178d03c63eaa2b7a67e18abe17a7c5..c334fa4dcd0ecab1a1cdfe7ebb0b6615e710f164 100644 index c55a18eadc2bef0c98abd46898e10a5110212c68..e66595c24210ed3f2daab2add7e8acc8cf881fdc 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -241,6 +241,9 @@ import org.yaml.snakeyaml.error.MarkedYAMLException; @@ -241,6 +241,9 @@ import org.yaml.snakeyaml.error.MarkedYAMLException;
@ -681,7 +681,7 @@ index cf913f0678178d03c63eaa2b7a67e18abe17a7c5..c334fa4dcd0ecab1a1cdfe7ebb0b6615
// Paper end // Paper end
} }
diff --git a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java diff --git a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
index 2d49bd6f3f017d43dfaa23cedf35040b64bcdcf8..661d8e9882509700faa9bc10a2e3074c5553af44 100644 index 9edc5e73819e0b55372f77c5e292eece74d837c7..9001c9dc68dc05944eb839c3354bea29249daa92 100644
--- a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java --- a/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
+++ b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java +++ b/src/main/java/org/bukkit/craftbukkit/profile/CraftPlayerProfile.java
@@ -27,7 +27,7 @@ import org.bukkit.profile.PlayerProfile; @@ -27,7 +27,7 @@ import org.bukkit.profile.PlayerProfile;

View File

@ -58,7 +58,7 @@ index 9aa134e56d661d033bb7229e6ab662534bf9cba9..794081610e52b7b8e04403510d1ad05f
@Override @Override
public abstract boolean isSpectator(); public abstract boolean isSpectator();
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
index 2099056896954c700840f3c598f147e4983b86a1..ea024ec921a382e40c982cc529f13d08101ca131 100644 index 2c934b7a2142a4d1ae21feeb95d23f22cfda3be0..3954ed194388c6487c6cd0303aea9e1b65a0f8ee 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
@@ -504,6 +504,32 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @@ -504,6 +504,32 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {

View File

@ -15,7 +15,7 @@ This may cause additional prefixes to be disabled for plugins bypassing
the plugin logger. the plugin logger.
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index a8bc19403fc82ef03e43afe8ddf5fa78890e8dda..22038142efe960acebba84a4cc81f5ce7eaa0512 100644 index d4141a24cb5ba20e8c53c85206b32120ff18eb48..a57fad0a75fe18f70d3dd6cd5c6a2ab90eb0498d 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -17,7 +17,7 @@ dependencies { @@ -17,7 +17,7 @@ dependencies {
@ -28,7 +28,7 @@ index a8bc19403fc82ef03e43afe8ddf5fa78890e8dda..22038142efe960acebba84a4cc81f5ce
implementation("org.apache.logging.log4j:log4j-iostreams:2.17.1") // Paper implementation("org.apache.logging.log4j:log4j-iostreams:2.17.1") // Paper
implementation("org.ow2.asm:asm:9.3") implementation("org.ow2.asm:asm:9.3")
diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java
index a4ec0d7791deed7cb64d4a35e19ceb3d9d798221..2e684d28948d23a310b5d5029903a871e6f9b1ca 100644 index 051d7c7fc5796ad056ae1ba5e5e630fde8794108..c2e3d32e51902503af88f089e366e784f42d999a 100644
--- a/src/main/java/org/spigotmc/SpigotConfig.java --- a/src/main/java/org/spigotmc/SpigotConfig.java
+++ b/src/main/java/org/spigotmc/SpigotConfig.java +++ b/src/main/java/org/spigotmc/SpigotConfig.java
@@ -290,7 +290,7 @@ public class SpigotConfig @@ -290,7 +290,7 @@ public class SpigotConfig

View File

@ -90,7 +90,7 @@ index 9016aced079108aeae09f030a672467a953ef93f..4170bda451df3db43e7d57d87d1abb81
@Override @Override
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 0b693866af8e0d8de275e87ca1232a03a6a35abe..7233d075b9c12c4beee872c204a4524c942f183d 100644 index 4754f603ca1c80129f9ee3868b54d25c52a759cc..b956da482950b7383768d6bd60fa4360e179d7d8 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -218,6 +218,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -218,6 +218,20 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

View File

@ -17,7 +17,7 @@ from networking or during connections flood of chunk packets on slower clients,
at the cost of dead connections being kept open for longer. at the cost of dead connections being kept open for longer.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index 32c59e612519323c8ee1956a1a893354913d1fda..71e52f71ac06f66696f5ae9b79ab490c7389927f 100644 index a38061ba575a2603b6b04382cb2f5c8396b05bdd..86f9991cfe6aca5923c64d8cdde6e90b9ba5591d 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -240,7 +240,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -240,7 +240,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Add PlayerArmorChangeEvent
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 7c50e9c28f9f26b42d2baa51d8fa735bb182ffa5..27a2ba075a2f7575b6788c66a121fc906b19a99d 100644 index 20bc6684b0394fe08aa35c371bf668d8ebcf98b1..39635eae8b2f92ffb171c5cbb37bed5bd610266b 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1,5 +1,6 @@ @@ -1,5 +1,6 @@

View File

@ -6,7 +6,7 @@ Subject: [PATCH] Prevent logins from being processed when the player has
diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
index 9fe3ec7e6bd194b825a1b29bcff9fcd5e21f22ad..5bf48f4fb0794a1eaea3783add9e5852997434f6 100644 index d2f0450c6bae722bfa9162b027e723eb10b22c78..145f3eae6622453d47769e10fb30ce8d31d5f847 100644
--- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerLoginPacketListenerImpl.java
@@ -86,7 +86,11 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener @@ -86,7 +86,11 @@ public class ServerLoginPacketListenerImpl implements ServerLoginPacketListener

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Fix MC-117075: TE Unload Lag Spike
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index 5577a560d41a2467bd713f2fa7511c83a73c2f2d..e6b9b19cde9c3576745a10e0a12317fc99577ae8 100644 index 4e843d9e28f7775faba3e47ca5a725f7921490e6..28c3aca868c11da6f61b19b9b35072995c8be8bf 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -691,6 +691,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -691,6 +691,8 @@ public abstract class Level implements LevelAccessor, AutoCloseable {

View File

@ -18,7 +18,7 @@ the blockstate that will be valid for restoration, as opposed to dropping
information on restoration when the event is cancelled. information on restoration when the event is cancelled.
diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java diff --git a/src/main/java/net/minecraft/world/level/Level.java b/src/main/java/net/minecraft/world/level/Level.java
index e6b9b19cde9c3576745a10e0a12317fc99577ae8..ad0f91d57b5cbf0c4439993ad99ec7a484729a2e 100644 index 28c3aca868c11da6f61b19b9b35072995c8be8bf..4022c4d3b2ce935f69460e4de21f1fad7c100b26 100644
--- a/src/main/java/net/minecraft/world/level/Level.java --- a/src/main/java/net/minecraft/world/level/Level.java
+++ b/src/main/java/net/minecraft/world/level/Level.java +++ b/src/main/java/net/minecraft/world/level/Level.java
@@ -148,7 +148,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable { @@ -148,7 +148,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable {

View File

@ -72,7 +72,7 @@ index 86f9991cfe6aca5923c64d8cdde6e90b9ba5591d..7f17875e359855a25618a52bc2e844fe
@Override @Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index c334fa4dcd0ecab1a1cdfe7ebb0b6615e710f164..a9731e89f2cddc2ae256bf955945f4d2f3cd0c28 100644 index e66595c24210ed3f2daab2add7e8acc8cf881fdc..7e3631a75a2221955199f746e9b8f406a744121a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -2082,7 +2082,7 @@ public final class CraftServer implements Server { @@ -2082,7 +2082,7 @@ public final class CraftServer implements Server {

View File

@ -10,7 +10,7 @@ of giving the player experience points.
Both an API To standalone mend, and apply mending logic to .giveExp has been added. Both an API To standalone mend, and apply mending logic to .giveExp has been added.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 7233d075b9c12c4beee872c204a4524c942f183d..e6ca45329c5f102ebf4abc729837108cad63a59f 100644 index b956da482950b7383768d6bd60fa4360e179d7d8..153b5602f1c5f6ef7a184fc8c9cb72523fa3fccb 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -1346,7 +1346,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -1346,7 +1346,37 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

View File

@ -9,7 +9,7 @@ In Offline Mode, will return an Offline UUID
This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer This is a more performant way to obtain a UUID for a name than loading an OfflinePlayer
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index a9731e89f2cddc2ae256bf955945f4d2f3cd0c28..53834d226cf577413d1514c54f5a4b0294a432e7 100644 index 7e3631a75a2221955199f746e9b8f406a744121a..4950f11c12f29cb363acd639c16c4aa8efafdd17 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java --- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java +++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -1704,6 +1704,25 @@ public final class CraftServer implements Server { @@ -1704,6 +1704,25 @@ public final class CraftServer implements Server {

View File

@ -28,7 +28,7 @@ respond to the request.
[2]: https://netty.io/wiki/user-guide-for-4.x.html#wiki-h4-13 [2]: https://netty.io/wiki/user-guide-for-4.x.html#wiki-h4-13
diff --git a/src/main/java/net/minecraft/server/network/LegacyQueryHandler.java b/src/main/java/net/minecraft/server/network/LegacyQueryHandler.java diff --git a/src/main/java/net/minecraft/server/network/LegacyQueryHandler.java b/src/main/java/net/minecraft/server/network/LegacyQueryHandler.java
index d86c2287cb9f4c8cf99e4374ef8a7135041670a1..2818495aa221f8195f095e39091bd478cebb3807 100644 index 1369321f60ba0d8f754b1aad6dbc6d6ab990f2bf..c4f1de1413e37e91492e7dd3fa33da5ef87fdbd5 100644
--- a/src/main/java/net/minecraft/server/network/LegacyQueryHandler.java --- a/src/main/java/net/minecraft/server/network/LegacyQueryHandler.java
+++ b/src/main/java/net/minecraft/server/network/LegacyQueryHandler.java +++ b/src/main/java/net/minecraft/server/network/LegacyQueryHandler.java
@@ -16,6 +16,7 @@ public class LegacyQueryHandler extends ChannelInboundHandlerAdapter { @@ -16,6 +16,7 @@ public class LegacyQueryHandler extends ChannelInboundHandlerAdapter {

View File

@ -9,7 +9,7 @@ e.g. servers which allow and support the usage of mod packs.
provide an optional flag to disable this check, at your own risk. provide an optional flag to disable this check, at your own risk.
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 380bdc7cfa8980d5db29a15b29613fc62d75de2a..68a6bb89a5946fba7d4baeb009895d7ca975cbe8 100644 index fd3304d1e58f0976cd048d4a265181a0f1251c2f..64f891db064ab1ad74479a5d7fb4d7828217afc7 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -167,6 +167,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player { @@ -167,6 +167,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {

View File

@ -28,7 +28,7 @@ index 911843bf38ab750edd4a63417ba7a9deb6b64cb1..a0950f5902c3719dc31205ec43dca948
// Paper start // Paper start
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
index ea024ec921a382e40c982cc529f13d08101ca131..34e8ee0cc42c77715c62b0b4682f3df946266e11 100644 index 3954ed194388c6487c6cd0303aea9e1b65a0f8ee..4ff81744b7c9113f57cf1fa89bb943902711b2dc 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java --- a/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java +++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftHumanEntity.java
@@ -614,6 +614,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity { @@ -614,6 +614,12 @@ public class CraftHumanEntity extends CraftLivingEntity implements HumanEntity {

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Fix exploit that allowed colored signs to be created
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index cd9f1bea29833c0d263d43f4a8c76908c0c54b89..2d6bb5e7dee7a0e7ddaf6e05a9a1f9df9f1d195d 100644 index 7f17875e359855a25618a52bc2e844fe10258aaf..d729042a22f01decbf30d35d7842e43cab283c05 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -3002,9 +3002,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -3002,9 +3002,9 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser

View File

@ -12,7 +12,7 @@ This disables that by not saving the thrower when the chunk is unloaded.
This is mainly useful for survival servers that do not allow freeform teleporting. This is mainly useful for survival servers that do not allow freeform teleporting.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index e4d6fe5f19a575acfb08fcb8335f7519ed73b295..bd37a46aebe84e5d02b9ae40a57ed95c7c35c54b 100644 index ddd956828996c9d7a86aa89a01cc5a2ee4606c30..2208dafab412df254bf4c17c1c03d1475b77fbd3 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -2072,6 +2072,12 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -2072,6 +2072,12 @@ public class ServerLevel extends Level implements WorldGenLevel {

View File

@ -10,7 +10,7 @@ Adds an option to control the force mode of the particle.
This adds a new Builder API which is much friendlier to use. This adds a new Builder API which is much friendlier to use.
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index bd37a46aebe84e5d02b9ae40a57ed95c7c35c54b..96723a042c23d53a955c766d7899164684c32b74 100644 index 2208dafab412df254bf4c17c1c03d1475b77fbd3..d394f7dd4ef1faa1b92a56945e5dab96b6dd17b8 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -1485,12 +1485,17 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -1485,12 +1485,17 @@ public class ServerLevel extends Level implements WorldGenLevel {

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Make shield blocking delay configurable
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 27a2ba075a2f7575b6788c66a121fc906b19a99d..1d82dab7fad130e6674d7f137ca29258cc7632a4 100644 index 39635eae8b2f92ffb171c5cbb37bed5bd610266b..a2bf006f79b0c22827720e7d95828590cb52c8ef 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -3697,12 +3697,24 @@ public abstract class LivingEntity extends Entity { @@ -3697,12 +3697,24 @@ public abstract class LivingEntity extends Entity {

View File

@ -6,7 +6,7 @@ Subject: [PATCH] Implement EntityKnockbackByEntityEvent
This event is called when an entity receives knockback by another entity. This event is called when an entity receives knockback by another entity.
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
index 1d82dab7fad130e6674d7f137ca29258cc7632a4..da896f299072360a23cdfd025ed6f151a0441d4e 100644 index a2bf006f79b0c22827720e7d95828590cb52c8ef..de16969a25bd72b4420e5ecbdb477a1adc51f2d1 100644
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java --- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java +++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
@@ -1456,7 +1456,7 @@ public abstract class LivingEntity extends Entity { @@ -1456,7 +1456,7 @@ public abstract class LivingEntity extends Entity {

View File

@ -16,7 +16,7 @@ Refresh the player inventory when PlayerInteractEntityEvent is
cancelled to avoid this problem. cancelled to avoid this problem.
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
index c91e8300fe0cb673567f0b0e725a6d460dcebf31..4b99de786be5fbefb94a5484868b897ab0f86a27 100644 index 8b9e569ccefaa5123c966590a9bba77cc8eec64d..ff79bb6e51d8c7e4b61509f7cf95b1282e7a844e 100644
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java --- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java +++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
@@ -2426,6 +2426,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser @@ -2426,6 +2426,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Ser

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Use AsyncAppender to keep logging IO off main thread
diff --git a/build.gradle.kts b/build.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts
index 2a77dfc3045d7cbf035a4bc0cd25ee95555f83cd..d226f391e596e0303d0f8f29f594e0ddbe47bcd0 100644 index a57fad0a75fe18f70d3dd6cd5c6a2ab90eb0498d..6dbac0f93481256dd57e76630ae9eea9d5c56849 100644
--- a/build.gradle.kts --- a/build.gradle.kts
+++ b/build.gradle.kts +++ b/build.gradle.kts
@@ -26,6 +26,7 @@ dependencies { @@ -26,6 +26,7 @@ dependencies {

View File

@ -86,7 +86,7 @@ index 90c8ef9995e834c245cc33f5e59ffdabd5a0b8cd..7c6c928da4e0f3ac54fa9b9ddce7b0e0
int i = blockposition.getX(); int i = blockposition.getX();
int j = blockposition.getY(); int j = blockposition.getY();
diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java diff --git a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
index 49ec76720dea8c756817ded7d02bfea02f86d428..2dac07a71474fd9c92955914f121094fcad23212 100644 index 1bc3edad4fa79b2efb34e92b4af492769a8fcf83..518e44f783f5062ce53e9907501bd3a54c8014bb 100644
--- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java --- a/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
+++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java +++ b/src/main/java/org/bukkit/craftbukkit/event/CraftEventFactory.java
@@ -422,6 +422,20 @@ public class CraftEventFactory { @@ -422,6 +422,20 @@ public class CraftEventFactory {

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Add TNTPrimeEvent
diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java diff --git a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
index dc2e57bfc5e85c9ef548cb895b3fcd1c09c4dacb..21d26be5edbc05ac78c2f4a092594d772d98c982 100644 index d0ebcc23d863be630b55245aa2604c108ee6c93a..3a6e5893181ed681099f2748abca738af45ec9c9 100644
--- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java --- a/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
+++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java +++ b/src/main/java/net/minecraft/world/entity/boss/enderdragon/EnderDragon.java
@@ -532,6 +532,11 @@ public class EnderDragon extends Mob implements Enemy { @@ -532,6 +532,11 @@ public class EnderDragon extends Mob implements Enemy {

View File

@ -29,7 +29,7 @@ index 4f2dfe5d2b646a1a2f19414388af13b26d28d504..213c94cecc1103056ce83625f1e78cd6
protected void tick() { protected void tick() {
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 1e559d238441d28c52b3305c42dec0f6115b2626..547aea9a2ead3eff5690f18cfc351b01dd4cd395 100644 index 0531b9c5b10fe250531b0c04cb2ffe2751e7d1c5..25df052247ba26b75e49c801587f71d0fed31c92 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java --- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java +++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -215,6 +215,9 @@ public class ServerLevel extends Level implements WorldGenLevel { @@ -215,6 +215,9 @@ public class ServerLevel extends Level implements WorldGenLevel {

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