@Override
	public void onDisable()
	{		
		// 'Attempt to' Cancel all tasks
		getServer().getScheduler().cancelTasks(this);
		
		Component.disableComponents();
		
		p = null;
		
		// Backup the current files
		if (updater != null && updater.getResult() == Updater.UpdateResult.SUCCESS)
		{
			File destination = new File(getDataFolder(), String.format("backups%sv%s", File.separator, getDescription().getVersion()));
			
			if (destination.exists())
			{
				FileUtil.deleteFile(destination);
			}
			
			for (File file : getDataFolder().listFiles())
			{
				if ("backups".equalsIgnoreCase(file.getName()))
					continue;
				
				try
				{
					FileUtil.copy(file, new File(destination, file.getName()));	
				}
				catch (IOException e)
				{
					getLogger().severe("Error backing up old config files");
					e.printStackTrace();
				}
			}
		}
	}