Mirror von
https://github.com/PaperMC/Paper.git
synchronisiert 2024-12-16 03:20:07 +01:00
SPIGOT-4527: Fix sponges with waterlogged blocks
Dieser Commit ist enthalten in:
Ursprung
6ec8ea5cf4
Commit
b446cb5d74
@ -46,12 +46,12 @@
|
|||||||
++i;
|
++i;
|
||||||
if (j < 6) {
|
if (j < 6) {
|
||||||
linkedlist.add(new Tuple(blockposition2, j + 1));
|
linkedlist.add(new Tuple(blockposition2, j + 1));
|
||||||
@@ -75,6 +82,31 @@
|
@@ -75,6 +82,37 @@
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+ // CraftBukkit start
|
+ // CraftBukkit start
|
||||||
+ List<CraftBlockState> blocks = blockList.getList();
|
+ List<CraftBlockState> blocks = blockList.getList(); // Is a clone
|
||||||
+ if (!blocks.isEmpty()) {
|
+ if (!blocks.isEmpty()) {
|
||||||
+ final org.bukkit.block.Block bblock = world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ());
|
+ final org.bukkit.block.Block bblock = world.getWorld().getBlockAt(blockposition.getX(), blockposition.getY(), blockposition.getZ());
|
||||||
+
|
+
|
||||||
@ -65,12 +65,18 @@
|
|||||||
+ for (CraftBlockState block : blocks) {
|
+ for (CraftBlockState block : blocks) {
|
||||||
+ BlockPosition blockposition2 = new BlockPosition(block.getX(), block.getY(), block.getZ());
|
+ BlockPosition blockposition2 = new BlockPosition(block.getX(), block.getY(), block.getZ());
|
||||||
+ IBlockData iblockdata = world.getType(blockposition2);
|
+ IBlockData iblockdata = world.getType(blockposition2);
|
||||||
|
+ Fluid fluid = world.getFluid(blockposition2);
|
||||||
+ Material material = iblockdata.getMaterial();
|
+ Material material = iblockdata.getMaterial();
|
||||||
+
|
+
|
||||||
+ if (material == Material.WATER_PLANT || material == Material.REPLACEABLE_WATER_PLANT) {
|
+ if (fluid.a(TagsFluid.WATER)) {
|
||||||
+ iblockdata.a(world, blockposition2, 0);
|
+ if (iblockdata.getBlock() instanceof IFluidSource && ((IFluidSource) iblockdata.getBlock()).a(blockList, blockposition2, iblockdata) != FluidTypes.a) {
|
||||||
|
+ // NOP
|
||||||
|
+ } else if (iblockdata.getBlock() instanceof BlockFluids) {
|
||||||
|
+ // NOP
|
||||||
|
+ } else if (material == Material.WATER_PLANT || material == Material.REPLACEABLE_WATER_PLANT) {
|
||||||
|
+ iblockdata.a(world, blockposition2, 0);
|
||||||
|
+ }
|
||||||
+ }
|
+ }
|
||||||
+
|
|
||||||
+ world.setTypeAndData(blockposition2, block.getHandle(), block.getFlag());
|
+ world.setTypeAndData(blockposition2, block.getHandle(), block.getFlag());
|
||||||
+ }
|
+ }
|
||||||
+ }
|
+ }
|
||||||
|
Laden…
In neuem Issue referenzieren
Einen Benutzer sperren