func (l Launcher) prepareRequirements() (bool, error) {
	instance := l.Instance
	outdatedReqs, err := instance.AreRequirementsOutdated()
	if err != nil {
		return false, err
	}
	fmt.Print(pipeText.Render(gchalk.BgGray("Requirements")))
	if l.ForceUpdate || outdatedReqs {
		fmt.Print(gchalk.Gray("(updating)"))
		err := instance.UpdateLockfileRequirements(context.TODO())
		if err != nil {
			return false, err
		}
		instance.SaveLockfile()
	}
	fmt.Println()
	req := gchalk.Gray(fmt.Sprintf(" resolved from %s", instance.Manifest.Requirements.Minecraft))
	fmt.Println("│ Minecraft " + instance.Lockfile.MinecraftVersion() + req)
	if instance.Manifest.PlatformString() == "fabric" {
		fmt.Printf(
			"│ Fabric: %s / %s (loader / mapping)\n",
			instance.Lockfile.Fabric.FabricLoader,
			instance.Lockfile.Fabric.Mapping,
		)
	}
	fmt.Println("│")
	return outdatedReqs, nil
}
prepareRequirements will update the requirements section
in the lockfile if needed
package launcher
import (
	"context"
	"fmt"
	"io/ioutil"
	"os"
	"path/filepath"
	"strings"
	"github.com/charmbracelet/lipgloss"
	"github.com/jwalton/gchalk"
	"github.com/minepkg/minepkg/internals/downloadmgr"
	"github.com/minepkg/minepkg/internals/minecraft"
	"github.com/spf13/viper"
)
func (l *Launcher) Prepare() error {
	instance := l.Instance
	ctx := context.Background()
	l.printIntro()
	l.introPrinted = true
	outdatedReqs, err := l.prepareRequirements()
	if err != nil {
		return err
	}
	javaUpdate := l.prepareJavaBg(ctx)
	if err := l.prepareDependencies(ctx, outdatedReqs); err != nil {
		return err
	}
	if err := l.prepareMinecraft(ctx); err != nil {
		return err
	}
	if err := instance.CopyLocalSaves(); err != nil {
		return err
	}
	if err := instance.EnsureDependencies(ctx); err != nil {
		return err
	}
	if err := instance.CopyOverwrites(); err != nil {
		return err
	}
	if l.ServerMode {
		fmt.Println(pipeText.Render("\nPreparing server"))
		l.prepareServer()
		if l.OfflineMode {
			pipeText.Render("  in offline mode")
			l.prepareOfflineServer()
		}
	}
	if err := <-javaUpdate; err != nil {
		return err
	}
	l.printOutro()
	return nil
}