public void handleBlockDig(Packet14BlockDig par1Packet14BlockDig) { WorldServer worldserver = mcServer.worldServerForDimension(playerEntity.dimension); if (par1Packet14BlockDig.status == 4) { playerEntity.dropOneItem(); return; } if (par1Packet14BlockDig.status == 5) { playerEntity.stopUsingItem(); return; } boolean flag = worldserver.actionsAllowed = worldserver.provider.worldType != 0 || mcServer.getConfigurationManager().areCommandsAllowed(playerEntity.username) || mcServer.isSinglePlayer(); boolean flag1 = false; if (par1Packet14BlockDig.status == 0) { flag1 = true; } if (par1Packet14BlockDig.status == 2) { flag1 = true; } int i = par1Packet14BlockDig.xPosition; int j = par1Packet14BlockDig.yPosition; int k = par1Packet14BlockDig.zPosition; if (flag1) { double d = playerEntity.posX - ((double) i + 0.5D); double d1 = (playerEntity.posY - ((double) j + 0.5D)) + 1.5D; double d3 = playerEntity.posZ - ((double) k + 0.5D); double d5 = d * d + d1 * d1 + d3 * d3; if (d5 > 36D) { return; } if (j >= mcServer.getBuildLimit()) { return; } } ChunkCoordinates chunkcoordinates = worldserver.getSpawnPoint(); int l = MathHelper.abs_int(i - chunkcoordinates.posX); int i1 = MathHelper.abs_int(k - chunkcoordinates.posZ); if (l > i1) { i1 = l; } if (par1Packet14BlockDig.status == 0) { if (i1 > 16 || flag) { playerEntity.theItemInWorldManager.onBlockClicked(i, j, k, par1Packet14BlockDig.face); } else { playerEntity.serverForThisPlayer.sendPacketToPlayer( new Packet53BlockChange(i, j, k, worldserver)); } } else if (par1Packet14BlockDig.status == 2) { playerEntity.theItemInWorldManager.uncheckedTryHarvestBlock(i, j, k); if (worldserver.getBlockId(i, j, k) != 0) { playerEntity.serverForThisPlayer.sendPacketToPlayer( new Packet53BlockChange(i, j, k, worldserver)); } } else if (par1Packet14BlockDig.status == 1) { playerEntity.theItemInWorldManager.destroyBlockInWorldPartially(i, j, k); if (worldserver.getBlockId(i, j, k) != 0) { playerEntity.serverForThisPlayer.sendPacketToPlayer( new Packet53BlockChange(i, j, k, worldserver)); } } else if (par1Packet14BlockDig.status == 3) { double d2 = playerEntity.posX - ((double) i + 0.5D); double d4 = playerEntity.posY - ((double) j + 0.5D); double d6 = playerEntity.posZ - ((double) k + 0.5D); double d7 = d2 * d2 + d4 * d4 + d6 * d6; if (d7 < 256D) { playerEntity.serverForThisPlayer.sendPacketToPlayer( new Packet53BlockChange(i, j, k, worldserver)); } } worldserver.actionsAllowed = false; }