private void runUpdater() {
		if (this.url != null && (this.read() && this.versionCheck())) {
			// Obtain the results of the project's file feed
			if ((this.versionLink != null) && (this.type != UpdateType.NO_DOWNLOAD)) {
				String name = this.file.getName();
				// If it's a zip file, it shouldn't be downloaded as the plugin's name
				if (this.versionLink.endsWith(".zip")) {
					name = this.versionLink.substring(this.versionLink.lastIndexOf("/") + 1);
				}
				this.saveFile(name);
				try {
					this.copyFileUsingStream(this.updateFolder.listFiles()[0], new File(this.plugin.getDataFolder().getParent(), this.file.getName()));
					delete(updateFolder);
				} catch (IOException e) {
					e.printStackTrace();
				}

			} else {
				this.result = UpdateResult.UPDATE_AVAILABLE;
			}
		}

		if (this.callback != null) {
			new BukkitRunnable() {
				@Override
				public void run() {
					runCallback();
				}
			}.runTask(this.plugin);
		}
	}