928bcc8d3a
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Bukkit Changes: 09943450 Update SnakeYAML version 5515734f SPIGOT-7162: Incorrect description for Entity#getVehicle javadoc 6f82b381 PR-788: Add getHand() to all relevant events CraftBukkit Changes: aaf484f6f SPIGOT-7163: CraftMerchantRecipe doesn't copy demand and specialPrice from BukkitMerchantRecipe 5329dd6fd PR-1107: Add getHand() to all relevant events 93061706e SPIGOT-7045: Ocelots never spawn with babies with spawn reason OCELOT_BABY
36 Zeilen
2.0 KiB
Diff
36 Zeilen
2.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jason Penilla <11360596+jpenilla@users.noreply.github.com>
|
|
Date: Sat, 31 Oct 2020 11:49:01 -0700
|
|
Subject: [PATCH] Fix client lag on advancement loading
|
|
|
|
When new advancements are added via the UnsafeValues#loadAdvancement
|
|
API, it triggers a full datapack reload when this is not necessary. The
|
|
advancement is already loaded directly into the advancement registry,
|
|
and the point of saving the advancement to the Bukkit datapack seems to
|
|
be for persistence. By removing the call to reload datapacks when an
|
|
advancement is loaded, the client no longer completely freezes up when
|
|
adding a new advancement.
|
|
To ensure the client still receives the updated advancement data, we
|
|
manually reload the advancement data for all players, which
|
|
normally takes place as a part of the datapack reloading.
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
|
index 346f5f4b2afec3127c5d1b8e054eaacb1cb756e4..3f45ebeb31264f5f9a99123894fe07bd8e4c65d8 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
|
|
@@ -340,7 +340,13 @@ public final class CraftMagicNumbers implements UnsafeValues {
|
|
Bukkit.getLogger().log(Level.SEVERE, "Error saving advancement " + key, ex);
|
|
}
|
|
|
|
- MinecraftServer.getServer().getPlayerList().reloadResources();
|
|
+ // Paper start
|
|
+ //MinecraftServer.getServer().getPlayerList().reload();
|
|
+ MinecraftServer.getServer().getPlayerList().getPlayers().forEach(player -> {
|
|
+ player.getAdvancements().reload(MinecraftServer.getServer().getAdvancements());
|
|
+ player.getAdvancements().flushDirty(player);
|
|
+ });
|
|
+ // Paper end
|
|
|
|
return bukkit;
|
|
}
|