|
16 | 16 |
|
17 | 17 | import net.minecraft.block.Block; |
18 | 18 | import net.minecraft.block.BlockLiquid; |
| 19 | +import net.minecraft.block.BlockSkull; |
19 | 20 | import net.minecraft.block.state.IBlockState; |
20 | 21 | import net.minecraft.client.resources.I18n; |
21 | 22 | import net.minecraft.entity.item.EntityItem; |
@@ -191,14 +192,27 @@ protected void addToInventoryOrDropItems(@NotNull List<ItemStack> drops, @NotNul |
191 | 192 | @NotNull EntityPlayer entityPlayer) { |
192 | 193 | TileEntity tileEntity = world.getTileEntity(lookingAtPos); |
193 | 194 | Block block = blockState.getBlock(); |
194 | | - boolean result = block.removedByPlayer(blockState, world, lookingAtPos, entityPlayer, true); |
195 | | - if (result) { |
196 | | - world.playEvent(null, 2001, lookingAtPos, Block.getStateId(blockState)); |
197 | | - block.onPlayerDestroy(world, lookingAtPos, blockState); |
198 | | - |
| 195 | + if (block instanceof BlockSkull) { |
199 | 196 | BlockUtility.startCaptureDrops(); |
200 | | - block.harvestBlock(world, entityPlayer, lookingAtPos, blockState, tileEntity, ItemStack.EMPTY); |
201 | | - return BlockUtility.stopCaptureDrops(); |
| 197 | + boolean result = block.removedByPlayer(blockState, world, lookingAtPos, entityPlayer, true); |
| 198 | + List<ItemStack> drops = BlockUtility.stopCaptureDrops(); |
| 199 | + |
| 200 | + if (result) { |
| 201 | + world.playEvent(null, 2001, lookingAtPos, Block.getStateId(blockState)); |
| 202 | + block.onPlayerDestroy(world, lookingAtPos, blockState); |
| 203 | + |
| 204 | + block.harvestBlock(world, entityPlayer, lookingAtPos, blockState, tileEntity, ItemStack.EMPTY); |
| 205 | + return drops; |
| 206 | + } |
| 207 | + } else { |
| 208 | + if (block.removedByPlayer(blockState, world, lookingAtPos, entityPlayer, true)) { |
| 209 | + world.playEvent(null, 2001, lookingAtPos, Block.getStateId(blockState)); |
| 210 | + block.onPlayerDestroy(world, lookingAtPos, blockState); |
| 211 | + |
| 212 | + BlockUtility.startCaptureDrops(); |
| 213 | + block.harvestBlock(world, entityPlayer, lookingAtPos, blockState, tileEntity, ItemStack.EMPTY); |
| 214 | + return BlockUtility.stopCaptureDrops(); |
| 215 | + } |
202 | 216 | } |
203 | 217 |
|
204 | 218 | return Collections.emptyList(); |
|
0 commit comments