@Override
	public void onEnable() {
		logger = getLogger();
		long start = System.currentTimeMillis();
		// Find out if Factions exists and is enabled
		Plugin factionTester = this.getServer().getPluginManager().getPlugin("Factions");

		if (factionTester != null && factionTester.isEnabled()
				&& factionTester.getDescription().getVersion().compareTo("1.8") >= 0) {
			logInfo("Factions plugin found. Hooking up and getting freaky.");

			// Set up outpost data
			outposts = new HashMap<Chunk, Outpost>();
			loadOutposts();

			// Register player listener
			getServer().getPluginManager().registerEvents(new PlayerListener(this), this);

			// Register commands
			OutpostCommandExecutor commander = new OutpostCommandExecutor(this);
			getCommand("outpost").setExecutor(commander);
			getCommand("ow").setExecutor(commander);
			getCommand("ol").setExecutor(commander);

			// Initialize the outpost scoreboard
			outpostBoard = new OutpostBoardManager(this);

		} else {
			logInfo("Suitable Factions plugin not found. Get Factions v1.8 or higher!");
			getServer().getPluginManager().disablePlugin(this);
		}
		logInfo("Done! (" + (System.currentTimeMillis() - start) + "ms)");
	}