public final void handlePlace(PlayerInteractEvent event, BlockAPI plugin)
	{
		Player player = event.getPlayer();
		ItemStack item = event.getItem();
		Block block = event.getClickedBlock().getRelative(event.getBlockFace());
		BlockState state = block.getState();

		if ((!block.isEmpty()) && (!block.isLiquid())) {
			return;
		}
		if (player.getGameMode() != GameMode.CREATIVE) {
			item = BlockAPI.setCustomBlockAmount(event.getItem(), BlockAPI.getCustomBlockAmount(event.getItem()) - 1);
			player.setItemInHand(item);
		}
		block.setType(Material.getMaterial(getMaterialName().toUpperCase()));

		block.setMetadata(getIdentifier(), new FixedMetadataValue(plugin, Integer.valueOf(0)));
		BlockPlaceEvent event2 = new BlockPlaceEvent(block, state, event.getClickedBlock(), item, player, true);
		plugin.getServer().getPluginManager().callEvent(event2);
		place(event2);
		if (!event2.isCancelled())
			addLocation(block.getLocation());
	}