geforkt von Mirrors/Paper
96d5e6ca48
Currently includes generated key holder classes for types used in the Registry Modification API
78 Zeilen
3.2 KiB
Diff
78 Zeilen
3.2 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Ineusia <ineusia@yahoo.com>
|
|
Date: Mon, 26 Oct 2020 11:37:48 -0500
|
|
Subject: [PATCH] Add Destroy Speed API
|
|
|
|
Co-authored-by: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
|
|
diff --git a/src/main/java/org/bukkit/block/Block.java b/src/main/java/org/bukkit/block/Block.java
|
|
index 4dcfff9aa28eec3467d49d6fcc00f22943fd9c92..137a40c708bb67de4608447975867a07240ddc88 100644
|
|
--- a/src/main/java/org/bukkit/block/Block.java
|
|
+++ b/src/main/java/org/bukkit/block/Block.java
|
|
@@ -681,4 +681,31 @@ public interface Block extends Metadatable, Translatable, net.kyori.adventure.tr
|
|
@Deprecated(forRemoval = true)
|
|
String getTranslationKey();
|
|
// Paper end
|
|
+
|
|
+ // Paper start - destroy speed API
|
|
+ /**
|
|
+ * Gets the speed at which this block will be destroyed by a given {@link ItemStack}
|
|
+ * <p>
|
|
+ * Default value is 1.0
|
|
+ *
|
|
+ * @param itemStack {@link ItemStack} used to mine this Block
|
|
+ * @return the speed that this Block will be mined by the given {@link ItemStack}
|
|
+ */
|
|
+ default float getDestroySpeed(final @NotNull ItemStack itemStack) {
|
|
+ return this.getBlockData().getDestroySpeed(itemStack);
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets the speed at which this block will be destroyed by a given {@link ItemStack}
|
|
+ * <p>
|
|
+ * Default value is 1.0
|
|
+ *
|
|
+ * @param itemStack {@link ItemStack} used to mine this Block
|
|
+ * @param considerEnchants true to look at enchants on the itemstack
|
|
+ * @return the speed that this Block will be mined by the given {@link ItemStack}
|
|
+ */
|
|
+ default float getDestroySpeed(@NotNull ItemStack itemStack, boolean considerEnchants) {
|
|
+ return this.getBlockData().getDestroySpeed(itemStack, considerEnchants);
|
|
+ }
|
|
+ // Paper end - destroy speed API
|
|
}
|
|
diff --git a/src/main/java/org/bukkit/block/data/BlockData.java b/src/main/java/org/bukkit/block/data/BlockData.java
|
|
index 869fa47a13fbcb128228963bf53cc72da4499a01..1f475424cc04d90f437cf0e38e07f5ae4020fb54 100644
|
|
--- a/src/main/java/org/bukkit/block/data/BlockData.java
|
|
+++ b/src/main/java/org/bukkit/block/data/BlockData.java
|
|
@@ -247,4 +247,29 @@ public interface BlockData extends Cloneable {
|
|
@NotNull
|
|
@ApiStatus.Experimental
|
|
BlockState createBlockState();
|
|
+
|
|
+ // Paper start - destroy speed API
|
|
+ /**
|
|
+ * Gets the speed at which this block will be destroyed by a given {@link ItemStack}
|
|
+ * <p>
|
|
+ * Default value is 1.0
|
|
+ *
|
|
+ * @param itemStack {@link ItemStack} used to mine this Block
|
|
+ * @return the speed that this Block will be mined by the given {@link ItemStack}
|
|
+ */
|
|
+ default float getDestroySpeed(final @NotNull ItemStack itemStack) {
|
|
+ return this.getDestroySpeed(itemStack, false);
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets the speed at which this block will be destroyed by a given {@link ItemStack}
|
|
+ * <p>
|
|
+ * Default value is 1.0
|
|
+ *
|
|
+ * @param itemStack {@link ItemStack} used to mine this Block
|
|
+ * @param considerEnchants true to look at enchants on the itemstack
|
|
+ * @return the speed that this Block will be mined by the given {@link ItemStack}
|
|
+ */
|
|
+ float getDestroySpeed(@NotNull ItemStack itemStack, boolean considerEnchants);
|
|
+ // Paper end - destroy speed API
|
|
}
|