4d40e87b33
Had to drop some hunks modifying getEntities, as those methods were rewritten by Mojang in 1.17
35 lines
1.6 KiB
Diff
35 lines
1.6 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/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
|
index aa81c0a4c02fd6f2ab900983fd8c9668fada802e..2209587fbc4240561aeea6e525fbf22f5041e145 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
|
|
@@ -782,5 +782,23 @@ public class CraftBlock implements Block {
|
|
public String getTranslationKey() {
|
|
return org.bukkit.Bukkit.getUnsafe().getTranslationKey(this);
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public float getDestroySpeed(ItemStack itemStack, boolean considerEnchants) {
|
|
+ net.minecraft.world.item.ItemStack nmsItemStack;
|
|
+ if (itemStack instanceof CraftItemStack) {
|
|
+ nmsItemStack = ((CraftItemStack) itemStack).handle;
|
|
+ } else {
|
|
+ nmsItemStack = CraftItemStack.asNMSCopy(itemStack);
|
|
+ }
|
|
+ float speed = nmsItemStack.getItem().getDestroySpeed(nmsItemStack, this.getNMSBlock().defaultBlockState());
|
|
+ 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
|
|
}
|