@Override
	public void enable(boolean force) throws IllegalStateException
	{
		// Make sure MobManager is enabled
		if (P.p() == null || !P.p().isEnabled())
		{
			throw new IllegalStateException("MobManager must be enabled to enable Bounties");
		}
		
		// Check if the Spawner is already enabled
		if (this.isEnabled())
		{
			throw new IllegalStateException("MobManager-Bounty was already enabled");
		}
		
		// Check if we should enable this component
		if (!force && !P.p().getConfig().getBoolean("EnableBounty", true))
		{
			return;
		}
		
		info("Enabling");
		enabled = true;
		
		config = new BountyConfig();
		
		if (config.bountyType == BountyType.MONEY && !setupEconomy())
		{
			warning("Requires Vault to use BountyType: MONEY");
			disable(true);
		}

		// Register event listeners
		Bukkit.getPluginManager().registerEvents(new BountyDeathListener(), P.p());
		if (config.useSpawnerProtection)
			Bukkit.getPluginManager().registerEvents(new BountySpawnListener(), P.p());
		if (config.useLoginTimer)
			Bukkit.getPluginManager().registerEvents(new BountyLoginListener(), P.p());

		info(String.format("Enabled with %d worlds", config.getWorldCount()));
	}