mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-12 18:01:07 +01:00
8b8e15fb63
This patch, while would have been nice, would just take too much in order to re-implement it to retain and handle all of the state changes possible, and complicates retaining state properly Fix SpongeAbsortEvent handling Only process drops when the block is actually going to be removed
39 lines
1.9 KiB
Diff
39 lines
1.9 KiB
Diff
From 3122cace4a90a3f599b9de4ac6438a7b584dcf18 Mon Sep 17 00:00:00 2001
|
|
From: Shane Freeder <theboyetronic@gmail.com>
|
|
Date: Sat, 10 Nov 2018 05:15:21 +0000
|
|
Subject: [PATCH] Fix SpongeAbsortEvent handling
|
|
|
|
Only process drops when the block is actually going to be removed
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/BlockSponge.java b/src/main/java/net/minecraft/server/BlockSponge.java
|
|
index 987af9c3de..adb863eb55 100644
|
|
--- a/src/main/java/net/minecraft/server/BlockSponge.java
|
|
+++ b/src/main/java/net/minecraft/server/BlockSponge.java
|
|
@@ -100,7 +100,11 @@ public class BlockSponge extends Block {
|
|
Material material = iblockdata.getMaterial();
|
|
|
|
if (material == Material.WATER_PLANT || material == Material.REPLACEABLE_WATER_PLANT) {
|
|
- iblockdata.a(world, blockposition2, 0);
|
|
+ // Paper start
|
|
+ if (block.getHandle().getMaterial() == Material.AIR) {
|
|
+ iblockdata.dropNaturally(world, blockposition2, 0);
|
|
+ }
|
|
+ // Paper end
|
|
}
|
|
|
|
world.setTypeAndData(blockposition2, block.getHandle(), block.getFlag());
|
|
diff --git a/src/main/java/net/minecraft/server/IBlockData.java b/src/main/java/net/minecraft/server/IBlockData.java
|
|
index 2d855aae69..bc345a2c39 100644
|
|
--- a/src/main/java/net/minecraft/server/IBlockData.java
|
|
+++ b/src/main/java/net/minecraft/server/IBlockData.java
|
|
@@ -223,6 +223,7 @@ public interface IBlockData extends IBlockDataHolder<IBlockData> {
|
|
this.getBlock().a(this, world, blockposition, entity);
|
|
}
|
|
|
|
+ default void dropNaturally(World world, BlockPosition blockPosition, int i) { a(world, blockPosition, i);} // Paper - OBFHELPER
|
|
default void a(World world, BlockPosition blockposition, int i) {
|
|
this.dropNaturally(world, blockposition, 1.0F, i);
|
|
}
|
|
--
|
|
2.19.1
|
|
|