@Override
	public void enable(boolean force)
	{		
		// Make sure MobManager is enabled
		if (P.p() == null || !P.p().isEnabled())
		{
			throw new IllegalStateException("MobManager must be enabled to enable the Spawner");
		}
		
		// Check if the Spawner is already enabled
		if (this.isEnabled())
		{
			throw new IllegalStateException("MobManager-Spawner was already enabled");
		}
		
		// Check if we should enable this component
		if (!force && !P.p().getConfig().getBoolean("EnableSpawner", true))
		{
			return;
		}
		
		info("Enabling");
		
		// Make sure the Limiter Component is enabled
		if (!Component.LIMITER.i().isEnabled())
		{
			Component.SPAWNER.warning("Limiter must be enabled first");
			return;
		}
		
		enabled = true;
		
		// Make sure Requirements/Actions appear in the config at least once
		SpawnRequirements.resetConfigFlag();
		Action.resetConfigFlag();

		// Load the config
		config = new SpawnerConfig();
		
		// Create the spawn finder
		spawnFinder = new SpawnFinder();
		
		// Register the player listener
		Bukkit.getPluginManager().registerEvents(new PlayerListener(), P.p());
	}