mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-12 04:06:52 +01:00
6e71f41536
Upstream has released updates that appear to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing CraftBukkit Changes: 65247583f SPIGOT-7857: Improve ItemMeta block data deserialization 05d80500d SPIGOT-7857: Fix spurious internal NBT tag when deserializing BlockStateMeta cebb58e9a SPIGOT-7804: Fix written book serialization efcdd5d38 SPIGOT-7794: Cancelling InventoryItemMoveEvent destroys items b568ba572 SPIGOT-7789: Fix NPE in CraftMetaFirework applyToItem f057cf449 Remove outdated build delay Spigot Changes: f6a48054 SPIGOT-7835: Fix issue with custom hopper settings bb63b137 Rebuild patches e1142b4d Rebuild patches
33 lines
1.6 KiB
Diff
33 lines
1.6 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: TrollyLoki <trollyloki@gmail.com>
|
|
Date: Wed, 11 Oct 2023 00:45:53 -0400
|
|
Subject: [PATCH] Add API to get the collision shape of a block before it's
|
|
placed
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
|
|
index de4bbb73a78d037b99d662df130c7e122fda6cee..162e10ce5481d1f94afae595114920ef9df51c61 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
|
|
@@ -679,6 +679,20 @@ public class CraftBlockData implements BlockData {
|
|
return this.state.isFaceSturdy(EmptyBlockGetter.INSTANCE, BlockPos.ZERO, CraftBlock.blockFaceToNotch(face), CraftBlockSupport.toNMS(support));
|
|
}
|
|
|
|
+ // Paper start
|
|
+ @Override
|
|
+ public org.bukkit.util.VoxelShape getCollisionShape(Location location) {
|
|
+ Preconditions.checkArgument(location != null, "location must not be null");
|
|
+
|
|
+ CraftWorld world = (CraftWorld) location.getWorld();
|
|
+ Preconditions.checkArgument(world != null, "location must not have a null world");
|
|
+
|
|
+ BlockPos position = CraftLocation.toBlockPosition(location);
|
|
+ net.minecraft.world.phys.shapes.VoxelShape shape = this.state.getCollisionShape(world.getHandle(), position);
|
|
+ return new org.bukkit.craftbukkit.util.CraftVoxelShape(shape);
|
|
+ }
|
|
+ // Paper end
|
|
+
|
|
@Override
|
|
public Color getMapColor() {
|
|
return Color.fromRGB(this.state.getMapColor(null, null).col);
|