mirror of
https://github.com/BX-Team/DivineMC.git
synced 2025-12-19 14:59:25 +00:00
Updated Upstream (Purpur)
Upstream has released updates that appear to apply and compile correctly Purpur Changes: PurpurMC/Purpur@9d1d9fd [ci skip] inline import PurpurMC/Purpur@1b5ab0c Updated Upstream (Paper) PurpurMC/Purpur@4b74604 [ci skip] enable caching (#1634)
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
# This file is auto generated, any changes may be overridden!
|
||||
# See CONTRIBUTING.md on how to add access transformers.
|
||||
public net.minecraft.world.entity.projectile.AbstractArrow startFalling()V
|
||||
public net.minecraft.world.level.block.state.pattern.BlockPattern matches(Lnet/minecraft/core/BlockPos;Lnet/minecraft/core/Direction;Lnet/minecraft/core/Direction;Lcom/google/common/cache/LoadingCache;)Lnet/minecraft/world/level/block/state/pattern/BlockPattern$BlockPatternMatch;
|
||||
public net.minecraft.world.level.chunk.storage.RegionFile getOversizedData(II)Lnet/minecraft/nbt/CompoundTag;
|
||||
public net.minecraft.world.level.chunk.storage.RegionFile isOversized(II)Z
|
||||
|
||||
@@ -40,7 +40,7 @@ index 01b8d73b1be9b41d6f51d11a0bead37a7bd9023f..d3865b375293e29162f08aa447bd91f9
|
||||
|
||||
if (this.container instanceof RecipeCraftingHolder recipeCraftingHolder) {
|
||||
diff --git a/net/minecraft/world/inventory/StonecutterMenu.java b/net/minecraft/world/inventory/StonecutterMenu.java
|
||||
index d6854d0ebe5cb4205963e879d71eb3940d54de1f..dbc4ca21120daf3a63750274db8cff671d12fcd2 100644
|
||||
index d6854d0ebe5cb4205963e879d71eb3940d54de1f..39d00670c4fbfd6646af34cbd598117f07fc41ac 100644
|
||||
--- a/net/minecraft/world/inventory/StonecutterMenu.java
|
||||
+++ b/net/minecraft/world/inventory/StonecutterMenu.java
|
||||
@@ -238,6 +238,7 @@ public class StonecutterMenu extends AbstractContainerMenu {
|
||||
@@ -51,15 +51,12 @@ index d6854d0ebe5cb4205963e879d71eb3940d54de1f..dbc4ca21120daf3a63750274db8cff67
|
||||
if (index == 1) {
|
||||
item1.onCraftedBy(item, player.level(), player);
|
||||
if (!this.moveItemStackTo(item, 2, 38, true)) {
|
||||
@@ -270,9 +271,9 @@ public class StonecutterMenu extends AbstractContainerMenu {
|
||||
@@ -270,7 +271,7 @@ public class StonecutterMenu extends AbstractContainerMenu {
|
||||
return ItemStack.EMPTY;
|
||||
}
|
||||
|
||||
- slot.onTake(player, item);
|
||||
+ slot.onTake(player, itemStack2); // DivineMC - Fix MC-65198
|
||||
if (index == 1) {
|
||||
- player.drop(item, false);
|
||||
+ player.drop(itemStack2, false); // DivineMC - Fix MC-65198
|
||||
player.drop(item, false);
|
||||
}
|
||||
|
||||
this.broadcastChanges();
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
|
||||
Date: Sun, 19 Jan 2025 18:01:27 +0300
|
||||
Subject: [PATCH] Async data saving
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/level/storage/LevelStorageSource.java b/net/minecraft/world/level/storage/LevelStorageSource.java
|
||||
index de43e54698125ce9f319d4889dd49f7029fe95e0..38a36da1d6e064b538b7b95c46994772d079a9ca 100644
|
||||
--- a/net/minecraft/world/level/storage/LevelStorageSource.java
|
||||
+++ b/net/minecraft/world/level/storage/LevelStorageSource.java
|
||||
@@ -514,7 +514,10 @@ public class LevelStorageSource {
|
||||
CompoundTag compoundTag = serverConfiguration.createTag(registries, hostPlayerNBT);
|
||||
CompoundTag compoundTag1 = new CompoundTag();
|
||||
compoundTag1.put("Data", compoundTag);
|
||||
- this.saveLevelData(compoundTag1);
|
||||
+ // DivineMC start - Async data saving
|
||||
+ Runnable runnable = () -> this.saveLevelData(compoundTag1);
|
||||
+ space.bxteam.divinemc.util.AsyncDataSaving.saveAsync(runnable);
|
||||
+ // DivineMC end - Async data saving
|
||||
}
|
||||
|
||||
private void saveLevelData(CompoundTag tag) {
|
||||
@@ -601,7 +604,10 @@ public class LevelStorageSource {
|
||||
this.checkLock();
|
||||
CompoundTag levelDataTagRaw = LevelStorageSource.readLevelDataTagRaw(this.levelDirectory.dataFile());
|
||||
modifier.accept(levelDataTagRaw.getCompound("Data"));
|
||||
- this.saveLevelData(levelDataTagRaw);
|
||||
+ // DivineMC start - Async data saving
|
||||
+ Runnable runnable = () -> this.saveLevelData(levelDataTagRaw);
|
||||
+ space.bxteam.divinemc.util.AsyncDataSaving.saveAsync(runnable);
|
||||
+ // DivineMC end - Async data saving
|
||||
}
|
||||
|
||||
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..339efaaf92fbec457759235f91e9a03d5d5d2e4f 100644
|
||||
--- a/net/minecraft/world/level/storage/PlayerDataStorage.java
|
||||
+++ b/net/minecraft/world/level/storage/PlayerDataStorage.java
|
||||
@@ -32,7 +32,14 @@ public class PlayerDataStorage {
|
||||
this.playerDir.mkdirs();
|
||||
}
|
||||
|
||||
+ // DivineMC start - Async playerdata save
|
||||
public void save(Player player) {
|
||||
+ Runnable runnable = () -> saveInternal(player);
|
||||
+ space.bxteam.divinemc.util.AsyncDataSaving.saveAsync(runnable);
|
||||
+ }
|
||||
+
|
||||
+ private void saveInternal(Player player) {
|
||||
+ // DivineMC end - Async playerdata save
|
||||
if (org.spigotmc.SpigotConfig.disablePlayerDataSaving) return; // Spigot
|
||||
try {
|
||||
CompoundTag compoundTag = player.saveWithoutId(new CompoundTag());
|
||||
@@ -1,11 +0,0 @@
|
||||
--- a/net/minecraft/world/entity/projectile/AbstractArrow.java
|
||||
+++ b/net/minecraft/world/entity/projectile/AbstractArrow.java
|
||||
@@ -344,7 +_,7 @@
|
||||
return this.isInGround() && this.level().noCollision(new AABB(this.position(), this.position()).inflate(0.06));
|
||||
}
|
||||
|
||||
- private void startFalling() {
|
||||
+ public void startFalling() { // DivineMC - private -> public - AbstractArrow#startFalling
|
||||
this.setInGround(false);
|
||||
Vec3 deltaMovement = this.getDeltaMovement();
|
||||
this.setDeltaMovement(deltaMovement.multiply(this.random.nextFloat() * 0.2F, this.random.nextFloat() * 0.2F, this.random.nextFloat() * 0.2F));
|
||||
@@ -162,11 +162,13 @@ public class DivineConfig {
|
||||
public static boolean removeVanillaUsernameCheck = false;
|
||||
public static boolean disableMovedWronglyThreshold = false;
|
||||
public static boolean enableSecureSeed = false;
|
||||
public static boolean asyncPlayerDataSaveEnabled = false;
|
||||
private static void miscSettings() {
|
||||
disableNonEditableSignWarning = getBoolean("settings.misc.disable-non-editable-sign-warning", disableNonEditableSignWarning);
|
||||
removeVanillaUsernameCheck = getBoolean("settings.misc.remove-vanilla-username-check", removeVanillaUsernameCheck);
|
||||
disableMovedWronglyThreshold = getBoolean("settings.misc.disable-moved-wrongly-threshold", disableMovedWronglyThreshold);
|
||||
enableSecureSeed = getBoolean("settings.misc.enable-secure-seed", enableSecureSeed);
|
||||
asyncPlayerDataSaveEnabled = getBoolean("settings.misc.experimental.async-player-data-save-enabled", asyncPlayerDataSaveEnabled);
|
||||
}
|
||||
|
||||
public static int linearFlushFrequency = 5;
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
package space.bxteam.divinemc.util;
|
||||
|
||||
import net.minecraft.Util;
|
||||
import space.bxteam.divinemc.configuration.DivineConfig;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
|
||||
public class AsyncDataSaving {
|
||||
private AsyncDataSaving() {
|
||||
throw new IllegalStateException("This class cannot be instantiated");
|
||||
}
|
||||
|
||||
public static void saveAsync(Runnable runnable) {
|
||||
if (!DivineConfig.asyncPlayerDataSaveEnabled) {
|
||||
runnable.run();
|
||||
return;
|
||||
}
|
||||
|
||||
ExecutorService ioExecutor = Util.backgroundExecutor().service();
|
||||
CompletableFuture.runAsync(runnable, ioExecutor);
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@ group = space.bxteam.divinemc
|
||||
|
||||
mcVersion=1.21.4
|
||||
version=1.21.4-R0.1-SNAPSHOT
|
||||
purpurRef=a9bcd9f0c8b66ad84f9ca6005d425902c9cd0442
|
||||
purpurRef=4b74604c1f9f84e87f91dd390c83850f088a736b
|
||||
experimental=false
|
||||
|
||||
org.gradle.configuration-cache=true
|
||||
|
||||
@@ -43,6 +43,7 @@ mv divinemc-server/build/libs/divinemc-paperclip-"$version"-mojmap.jar "$jarName
|
||||
echo "====="
|
||||
echo ""
|
||||
if [ "$experimental" = "true" ]; then
|
||||
echo "> [!WARNING]"
|
||||
echo "> This is an early, experimental build. It is only recommended for usage on test servers and should be used with caution."
|
||||
echo "> **Backups are mandatory!**"
|
||||
echo ""
|
||||
|
||||
Reference in New Issue
Block a user