mirror of
https://github.com/PaperMC/Paper.git
synced 2025-01-01 17:01:56 +01:00
dc253f1ad0
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
37 lines
No EOL
1.8 KiB
Diff
37 lines
No EOL
1.8 KiB
Diff
From 0000000000000000000000000000000000000000 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
|
|
@@ -0,0 +0,0 @@ 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
|
|
@@ -0,0 +0,0 @@ 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);
|
|
}
|
|
--
|