mirror of
https://github.com/LeavesMC/Leaves.git
synced 2025-12-29 11:59:17 +00:00
fix: prevent loss of item drops due to update suppression when breaking blocks(#525)
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: MC_XiaoHei <xor7xiaohei@gmail.com>
|
||||
Date: Fri, 4 Jul 2025 17:13:15 +0800
|
||||
Subject: [PATCH] Prevent loss of item drops due to update suppression when
|
||||
breaking blocks
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/level/ServerPlayerGameMode.java b/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
index 48bb795216ca3fb301813080de403a048bbfa98c..e62fca1668d5523453b3cae44dda2a01b33c7813 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayerGameMode.java
|
||||
@@ -382,7 +382,13 @@ public class ServerPlayerGameMode {
|
||||
this.level.captureDrops = new java.util.ArrayList<>();
|
||||
// CraftBukkit end
|
||||
BlockState blockState1 = org.leavesmc.leaves.command.subcommands.BlockUpdateCommand.isNoBlockUpdate() ? blockState : block.playerWillDestroy(this.level, pos, blockState, this.player); // Leaves - no block update
|
||||
- boolean flag = this.level.removeBlock(pos, false);
|
||||
+ boolean flag; // Leaves start - Prevent loss of item drops due to update suppression when breaking blocks
|
||||
+ try {
|
||||
+ flag = this.level.removeBlock(pos, false);
|
||||
+ } catch (org.leavesmc.leaves.util.UpdateSuppressionException e) {
|
||||
+ this.level.captureDrops = null;
|
||||
+ throw e;
|
||||
+ } // Leaves end - Prevent loss of item drops due to update suppression when breaking blocks
|
||||
if (flag) {
|
||||
block.destroy(this.level, pos, blockState1);
|
||||
}
|
||||
Reference in New Issue
Block a user