private void blockEvent(Block block, Player player, boolean place) {

		// if the event is not place it it break
		String eventType;
		boolean payBreak;
		if (place) {
			eventType = "place";
			payBreak = false;
		} else {
			eventType = "break";
			payBreak = true;
		}


		if ((!main.getServer().getScheduler().isQueued(getPayedHelper.getCurrentTaskId()) && (!main.getServer().getScheduler().isCurrentlyRunning(getPayedHelper.getCurrentTaskId())))) {
			getPayedHelper.setCurrentTaskId(main.getServer().getScheduler().scheduleAsyncDelayedTask(main, getPayedHelper.getPayDayTask(), getPayedConfig.getPayDayInterval()));
		}

		if (!isInBlackList(block.getLocation())) {
			if ((main.hasPermission(player, PLAYER_ALLOW_PAY))) {
				int workPlace = getPayedHelper.isPositionInWorkPlace(block.getLocation());
				if (workPlace != -1) {
					Map<String, Object> workPlaceInfo = getPayedHelper.getWorkPlacesInfo().get(workPlace);
					getPayedLogger.debug("workplaceInfo", workPlaceInfo.toString());
					if ((workPlaceInfo.get(eventType + "Type").toString().equalsIgnoreCase("percent"))) {
						double amountToAdd = getPrice(block, true).doubleValue() * (Double.parseDouble(workPlaceInfo.get(eventType + "Amount").toString()) / 100.0D);
						recordPlayerPayments(player, amountToAdd, workPlace);
						payPlayer(player, getPrice(block, payBreak));
					} else if (workPlaceInfo.get(eventType + "Type").toString().equalsIgnoreCase("flat")) {
						double amountToAdd = Double.parseDouble(workPlaceInfo.get(eventType + "Amount").toString());
						recordPlayerPayments(player, amountToAdd, workPlace);
						payPlayer(player, getPrice(block, payBreak));
					}
				} else {
					payPlayer(player, getPrice(block, payBreak));
				}
			}
		}

		getPayedHelper.addBlockToBlacklist(block.getLocation());
		if (getPayedHelper.sizeOfBlackList() > getPayedConfig.getBufferSize()) {
			getPayedHelper.removeBlockFromBlacklist(0);

		}

	}