#823: Add Block#isPreferredTool
This commit is contained in:
parent
1e1a5b75b7
commit
9db9aeecee
@ -658,7 +658,7 @@ public class CraftBlock implements Block {
|
|||||||
net.minecraft.world.item.ItemStack nms = CraftItemStack.asNMSCopy(item);
|
net.minecraft.world.item.ItemStack nms = CraftItemStack.asNMSCopy(item);
|
||||||
|
|
||||||
// Modelled off EntityHuman#hasBlock
|
// Modelled off EntityHuman#hasBlock
|
||||||
if (item == null || !iblockdata.isRequiresSpecialTool() || nms.canDestroySpecialBlock(iblockdata)) {
|
if (item == null || isPreferredTool(iblockdata, nms)) {
|
||||||
return net.minecraft.world.level.block.Block.getDrops(iblockdata, (WorldServer) world.getMinecraftWorld(), position, world.getTileEntity(position), entity == null ? null : ((CraftEntity) entity).getHandle(), nms)
|
return net.minecraft.world.level.block.Block.getDrops(iblockdata, (WorldServer) world.getMinecraftWorld(), position, world.getTileEntity(position), entity == null ? null : ((CraftEntity) entity).getHandle(), nms)
|
||||||
.stream().map(CraftItemStack::asBukkitCopy).collect(Collectors.toList());
|
.stream().map(CraftItemStack::asBukkitCopy).collect(Collectors.toList());
|
||||||
} else {
|
} else {
|
||||||
@ -666,6 +666,17 @@ public class CraftBlock implements Block {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isPreferredTool(ItemStack item) {
|
||||||
|
IBlockData iblockdata = getNMS();
|
||||||
|
net.minecraft.world.item.ItemStack nms = CraftItemStack.asNMSCopy(item);
|
||||||
|
return isPreferredTool(iblockdata, nms);
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean isPreferredTool(IBlockData iblockdata, net.minecraft.world.item.ItemStack nmsItem) {
|
||||||
|
return !iblockdata.isRequiresSpecialTool() || nmsItem.canDestroySpecialBlock(iblockdata);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setMetadata(String metadataKey, MetadataValue newMetadataValue) {
|
public void setMetadata(String metadataKey, MetadataValue newMetadataValue) {
|
||||||
getCraftWorld().getBlockMetadata().setMetadata(this, metadataKey, newMetadataValue);
|
getCraftWorld().getBlockMetadata().setMetadata(this, metadataKey, newMetadataValue);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user