diff --git a/patches/server/0004-Leaves-Server-Config-And-Command.patch b/patches/server/0004-Leaves-Server-Config-And-Command.patch index 82c2f6b1..bdd1df0e 100644 --- a/patches/server/0004-Leaves-Server-Config-And-Command.patch +++ b/patches/server/0004-Leaves-Server-Config-And-Command.patch @@ -128,10 +128,10 @@ index 35d2da9d91dcdd89de7c0f4af028fd182376ea8d..d73482fb1e71fe2951e96ae0593de268 .withRequiredArg() diff --git a/src/main/java/top/leavesmc/leaves/LeavesConfig.java b/src/main/java/top/leavesmc/leaves/LeavesConfig.java new file mode 100644 -index 0000000000000000000000000000000000000000..a1ed0e61e230d56f8f2b327a0f2c5129c00b8b23 +index 0000000000000000000000000000000000000000..415b726132f549495b5bff09bed2ca4eaf2e01fe --- /dev/null +++ b/src/main/java/top/leavesmc/leaves/LeavesConfig.java -@@ -0,0 +1,831 @@ +@@ -0,0 +1,836 @@ +package top.leavesmc.leaves; + +import com.destroystokyo.paper.util.SneakyThrow; @@ -788,6 +788,11 @@ index 0000000000000000000000000000000000000000..a1ed0e61e230d56f8f2b327a0f2c5129 + useFastItemMergeRaytracing = getBoolean("settings.performance.use-fast-item-merge-raytracing", useFastItemMergeRaytracing); + } + ++ public static boolean dontTriggerLootableRefreshNonPlayer = true; ++ private static void dontTriggerLootableRefreshNonPlayer() { ++ dontTriggerLootableRefreshNonPlayer = getBoolean("settings.performance.dont-trigger-lootable-refresh-for-non-player", dontTriggerLootableRefreshNonPlayer); ++ } ++ + public static final class WorldConfig { + + public final String worldName; diff --git a/patches/server/0088-Don-t-trigger-lootable-refresh-for-non-player-intera.patch b/patches/server/0088-Don-t-trigger-lootable-refresh-for-non-player-intera.patch new file mode 100644 index 00000000..24c5f76e --- /dev/null +++ b/patches/server/0088-Don-t-trigger-lootable-refresh-for-non-player-intera.patch @@ -0,0 +1,19 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: violetc <58360096+s-yh-china@users.noreply.github.com> +Date: Mon, 17 Jul 2023 22:51:31 +0800 +Subject: [PATCH] Don't trigger lootable refresh for non-player interaction + +This patch is Powered by Gale(https://github.com/GaleMC/Gale) + +diff --git a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java +index 081691f9710ff1115e4308f79ed49fbc38941193..b9f4e2df35a12f6aebd7ef9fca94dd456a34682b 100644 +--- a/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java ++++ b/src/main/java/net/minecraft/world/level/block/entity/RandomizableContainerBlockEntity.java +@@ -70,6 +70,7 @@ public abstract class RandomizableContainerBlockEntity extends BaseContainerBloc + } + + public void unpackLootTable(@Nullable Player player) { ++ if (top.leavesmc.leaves.LeavesConfig.dontTriggerLootableRefreshNonPlayer && player == null) return; // Leaves - don't trigger lootable refresh for non-player interaction + if (this.lootableData.shouldReplenish(player) && this.level.getServer() != null) { // Paper + LootTable lootTable = this.level.getServer().getLootData().getLootTable(this.lootTable); + if (player instanceof ServerPlayer) {