mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-01 20:50:41 +01:00
b58063a949
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 Bukkit Changes: 607ce370 SPIGOT-7069: Material.BARREL has Directional data class, should also be Openable f14cea82 SPIGOT-7070: Material.SCULK_VEIN has Waterlogged data class, should also be MultipleFacing 8e43b278 PR-767: Add support checking/survivability methods for BlockData b3dee151 SPIGOT-7083: Add Boat.WoodenType, Boat.Status; deprecate TreeSpecies CraftBukkit Changes: 9a8e08010 SPIGOT-7069: Material.BARREL has Directional data class, should also be Openable 26bd88ccd SPIGOT-7070: Material.SCULK_VEIN has Waterlogged data class, should also be MultipleFacing 7ba06e15b SPIGOT-7095: StructureGrowEvent doesn't fire for mangrove propagules growing to a tree 163e35c91 PR-1079: Add support checking/survivability methods for BlockData 4230f8f0e SPIGOT-7083: Add Boat.WoodenType, Boat.Status; deprecate TreeSpecies Spigot Changes: 14a2382f Rebuild patches
82 lines
3.3 KiB
Diff
82 lines
3.3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Thu, 4 Nov 2021 11:50:35 -0700
|
|
Subject: [PATCH] Add isCollidable methods to various places
|
|
|
|
|
|
diff --git a/src/main/java/org/bukkit/Material.java b/src/main/java/org/bukkit/Material.java
|
|
index 6eae173f589cb90eb6e41b5b75e13a3c02e7901d..1d6baee05643607baa40a07022576906ea61a92f 100644
|
|
--- a/src/main/java/org/bukkit/Material.java
|
|
+++ b/src/main/java/org/bukkit/Material.java
|
|
@@ -4171,6 +4171,16 @@ public enum Material implements Keyed, net.kyori.adventure.translation.Translata
|
|
public Multimap<Attribute, AttributeModifier> getItemAttributes(@NotNull EquipmentSlot equipmentSlot) {
|
|
return Bukkit.getUnsafe().getItemAttributes(this, equipmentSlot);
|
|
}
|
|
+
|
|
+ /**
|
|
+ * Checks if this material is collidable.
|
|
+ *
|
|
+ * @return true if collidable
|
|
+ * @throws IllegalArgumentException if {@link #isBlock()} is false
|
|
+ */
|
|
+ public boolean isCollidable() {
|
|
+ return Bukkit.getUnsafe().isCollidable(this);
|
|
+ }
|
|
// Paper end
|
|
|
|
/**
|
|
diff --git a/src/main/java/org/bukkit/UnsafeValues.java b/src/main/java/org/bukkit/UnsafeValues.java
|
|
index 0a9a50251093e1ea605a748eb8d899f34b26ef7b..be8d5c172b0a300648f21e2163ccf0a9cd7915ee 100644
|
|
--- a/src/main/java/org/bukkit/UnsafeValues.java
|
|
+++ b/src/main/java/org/bukkit/UnsafeValues.java
|
|
@@ -225,5 +225,14 @@ public interface UnsafeValues {
|
|
* @throws IllegalArgumentException if the entity does not exist of have default attributes (use {@link #hasDefaultEntityAttributes(NamespacedKey)} first)
|
|
*/
|
|
@org.jetbrains.annotations.NotNull org.bukkit.attribute.Attributable getDefaultEntityAttributes(@org.jetbrains.annotations.NotNull NamespacedKey entityKey);
|
|
+
|
|
+ /**
|
|
+ * Checks if this material is collidable.
|
|
+ *
|
|
+ * @param material the material to check
|
|
+ * @return true if collidable
|
|
+ * @throws IllegalArgumentException if {@link Material#isBlock()} is false
|
|
+ */
|
|
+ boolean isCollidable(@org.jetbrains.annotations.NotNull Material material);
|
|
// Paper end
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
|
|
index c847bc83c0911007d226f1a8c6f1d0cefa9a1689..cff39708e66208921da15d12d94407d6b6950298 100644
|
|
--- a/src/main/java/org/bukkit/block/Block.java
|
|
+++ b/src/main/java/org/bukkit/block/Block.java
|
|
@@ -481,6 +481,13 @@ public interface Block extends Metadatable, net.kyori.adventure.translation.Tran
|
|
* @return true if block is solid
|
|
*/
|
|
boolean isSolid();
|
|
+
|
|
+ /**
|
|
+ * Checks if this block is collidable.
|
|
+ *
|
|
+ * @return true if collidable
|
|
+ */
|
|
+ boolean isCollidable();
|
|
// Paper end
|
|
|
|
/**
|
|
diff --git a/src/main/java/org/bukkit/block/BlockState.java b/src/main/java/org/bukkit/block/BlockState.java
|
|
index 3147e278eac674ed21d714bbe318b135c0a6b408..10cbe71917bc32cca61748bcb0aa3395c554dbf8 100644
|
|
--- a/src/main/java/org/bukkit/block/BlockState.java
|
|
+++ b/src/main/java/org/bukkit/block/BlockState.java
|
|
@@ -225,4 +225,13 @@ public interface BlockState extends Metadatable {
|
|
* or 'virtual' (e.g. on an itemstack)
|
|
*/
|
|
boolean isPlaced();
|
|
+
|
|
+ // Paper start
|
|
+ /**
|
|
+ * Checks if this block state is collidable.
|
|
+ *
|
|
+ * @return true if collidable
|
|
+ */
|
|
+ boolean isCollidable();
|
|
+ // Paper end
|
|
}
|