mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2026-01-04 15:41:40 +00:00
Upstream has released updates that appear to apply and compile correctly Leaves Changes: LeavesMC/Leaves@88819fe8 Add mc-old hopper suck-in behavior (#395) LeavesMC/Leaves@7394e8dd Fix papermc repo LeavesMC/Leaves@85c7bf11 Remove cache-world-generator-sea-level (#392) LeavesMC/Leaves@00798036 init 1.21.4, and boom! LeavesMC/Leaves@91fc24da build change, but weight not work LeavesMC/Leaves@4ccdf459 just work LeavesMC/Leaves@05ee2e36 Build changes, and delete timings LeavesMC/Leaves@fcc859dc Fix API patches (#406) LeavesMC/Leaves@6a1259df 0006/0129 LeavesMC/Leaves@3e3b05df 0009/0129 LeavesMC/Leaves@c3255c4f 0011/0129 LeavesMC/Leaves@6284c7b6 0018/0129 LeavesMC/Leaves@7abdc88c 0030/0129 LeavesMC/Leaves@4d119ff9 0035/0129 LeavesMC/Leaves@60baed99 0043/0129 LeavesMC/Leaves@dc319d5b 0048/0129 LeavesMC/Leaves@73a505d5 0049/0129 LeavesMC/Leaves@016b29dd 0057/0129 LeavesMC/Leaves@c9cf5af8 0065/0129 LeavesMC/Leaves@330b79ff 0086/0129 (#408) LeavesMC/Leaves@06c1d946 0087/0129 LeavesMC/Leaves@bf4bc284 0091/0129 LeavesMC/Leaves@102a3b70 0097/0129 LeavesMC/Leaves@53b43fed 0101/0129 LeavesMC/Leaves@892f3925 102/129 LeavesMC/Leaves@08c3043a 0107/0129 LeavesMC/Leaves@48764d8e 0112/0129 LeavesMC/Leaves@8380feff 0118/0129 LeavesMC/Leaves@e51603db 0129/0129, 100% patched LeavesMC/Leaves@ef851152 fix some LeavesMC/Leaves@9b7c6e88 server work LeavesMC/Leaves@272b7dcb Protocol... (#409) LeavesMC/Leaves@7be1bc97 Make jade better LeavesMC/Leaves@5350f6ea Make action work LeavesMC/Leaves@f07c26c8 fix action jar
57 lines
2.8 KiB
Diff
57 lines
2.8 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com>
|
|
Date: Fri, 23 Aug 2024 22:04:20 -0400
|
|
Subject: [PATCH] Nitori: Async playerdata Save
|
|
|
|
Original license: GPL v3
|
|
Original project: https://github.com/Gensokyo-Reimagined/Nitori
|
|
|
|
diff --git a/net/minecraft/world/level/storage/LevelStorageSource.java b/net/minecraft/world/level/storage/LevelStorageSource.java
|
|
index de43e54698125ce9f319d4889dd49f7029fe95e0..1fde2e33af9102017ab17cb766e9784ecec09822 100644
|
|
--- a/net/minecraft/world/level/storage/LevelStorageSource.java
|
|
+++ b/net/minecraft/world/level/storage/LevelStorageSource.java
|
|
@@ -514,7 +514,11 @@ public class LevelStorageSource {
|
|
CompoundTag compoundTag = serverConfiguration.createTag(registries, hostPlayerNBT);
|
|
CompoundTag compoundTag1 = new CompoundTag();
|
|
compoundTag1.put("Data", compoundTag);
|
|
- this.saveLevelData(compoundTag1);
|
|
+
|
|
+ // Leaf start - Nitori - Async playerdata save
|
|
+ Runnable runnable = () -> this.saveLevelData(compoundTag1);
|
|
+ org.dreeam.leaf.async.AsyncPlayerDataSaving.saveAsync(runnable);
|
|
+ // Leaf end - Nitori - Async playerdata save
|
|
}
|
|
|
|
private void saveLevelData(CompoundTag tag) {
|
|
@@ -601,7 +605,11 @@ public class LevelStorageSource {
|
|
this.checkLock();
|
|
CompoundTag levelDataTagRaw = LevelStorageSource.readLevelDataTagRaw(this.levelDirectory.dataFile());
|
|
modifier.accept(levelDataTagRaw.getCompound("Data"));
|
|
- this.saveLevelData(levelDataTagRaw);
|
|
+
|
|
+ // Leaf start - Nitori - Async playerdata save
|
|
+ Runnable runnable = () -> this.saveLevelData(levelDataTagRaw);
|
|
+ org.dreeam.leaf.async.AsyncPlayerDataSaving.saveAsync(runnable);
|
|
+ // Leaf end - Nitori - Async playerdata save
|
|
}
|
|
|
|
public long makeWorldBackup() throws IOException {
|
|
diff --git a/net/minecraft/world/level/storage/PlayerDataStorage.java b/net/minecraft/world/level/storage/PlayerDataStorage.java
|
|
index c44110b123ba5912af18faf0065e9ded780da9b7..e15221e70a1dd2bec1eb2aea3e70db28eb512e74 100644
|
|
--- a/net/minecraft/world/level/storage/PlayerDataStorage.java
|
|
+++ b/net/minecraft/world/level/storage/PlayerDataStorage.java
|
|
@@ -33,6 +33,13 @@ public class PlayerDataStorage {
|
|
}
|
|
|
|
public void save(Player player) {
|
|
+ // Leaf start - Nitori - Async playerdata save
|
|
+ Runnable runnable = () -> saveInternal(player);
|
|
+ org.dreeam.leaf.async.AsyncPlayerDataSaving.saveAsync(runnable);
|
|
+ }
|
|
+
|
|
+ private void saveInternal(Player player) {
|
|
+ // Leaf end - Nitori - Async playerdata save
|
|
if (org.spigotmc.SpigotConfig.disablePlayerDataSaving) return; // Spigot
|
|
try {
|
|
CompoundTag compoundTag = player.saveWithoutId(new CompoundTag());
|