geforkt von Mirrors/Paper
bffb08c2f9
The Paper method was chosen for deprecation because it was more restrictive in that it has an isGliding check.
32 Zeilen
1.5 KiB
Diff
32 Zeilen
1.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Ineusia <ineusia@yahoo.com>
|
|
Date: Mon, 26 Oct 2020 11:48:06 -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/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
|
|
index 3aa4a2ac3b81abc1446b7f7dae7f636438341790..5b67d4dd280688093d7e36e59e5b2ec6ebdc796c 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
|
|
@@ -689,4 +689,19 @@ public class CraftBlockData implements BlockData {
|
|
public BlockState createBlockState() {
|
|
return CraftBlockStates.getBlockState(this.state, null);
|
|
}
|
|
+
|
|
+ // Paper start - destroy speed API
|
|
+ @Override
|
|
+ public float getDestroySpeed(final ItemStack itemStack, final boolean considerEnchants) {
|
|
+ net.minecraft.world.item.ItemStack nmsItemStack = CraftItemStack.unwrap(itemStack);
|
|
+ float speed = nmsItemStack.getDestroySpeed(this.state);
|
|
+ if (speed > 1.0F && considerEnchants) {
|
|
+ int enchantLevel = net.minecraft.world.item.enchantment.EnchantmentHelper.getItemEnchantmentLevel(net.minecraft.world.item.enchantment.Enchantments.BLOCK_EFFICIENCY, nmsItemStack);
|
|
+ if (enchantLevel > 0) {
|
|
+ speed += enchantLevel * enchantLevel + 1;
|
|
+ }
|
|
+ }
|
|
+ return speed;
|
|
+ }
|
|
+ // Paper end - destroy speed API
|
|
}
|