launcher

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 3, 2025 License: MIT Imports: 16 Imported by: 0

Documentation

Overview

Package launcher provides the necessary functions to start the game.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func IsInstanceExist

func IsInstanceExist(id string) bool

IsInstanceExist reports whether an instance with the specified ID exists.

func Launch

func Launch(launchEnv launchEnvironment, runner Runner) error

Launch a launchEnvironment with the specified runner.

The Java executable is checked and the classpath and command arguments are finalized.

func Prepare

func Prepare(inst Instance, options EnvOptions, watcher EventWatcher) (launchEnvironment, error)

Prepare prepares the specified instance to be launched with the provided options and sends events to watcher.

func RemoveInstance

func RemoveInstance(id string) error

RemoveInstance removes the instance with the specified ID.

Types

type AssetsResolvedEvent

type AssetsResolvedEvent struct {
	Assets int
}

AssetsResolvedEvent is called when all game assets have been identified and filtered.

type ConsoleRunner

type ConsoleRunner struct{}

An ConsoleRunner is an implementation of Runner which logs game output to the console.

func (ConsoleRunner) Run

func (ConsoleRunner) Run(cmd *exec.Cmd) error

type DownloadingEvent

type DownloadingEvent struct {
	Completed int
	Total     int
}

DownloadingEvent is called when a download has progressed.

type EnvOptions

type EnvOptions struct {
	Session            auth.Session
	Config             InstanceConfig
	QuickPlayServer    string
	Demo               bool
	DisableMultiplayer bool
	DisableChat        bool
}

type EventWatcher

type EventWatcher interface {
	Handle(event any)
}

An EventWatcher is a controller that handles game preparation events.

type Instance

type Instance struct {
	Dir           string         `json:"-"`
	Name          string         `json:"-"`
	GameVersion   string         `json:"game_version"`
	Loader        Loader         `json:"mod_loader"`
	LoaderVersion string         `json:"mod_loader_version,omitempty"`
	Config        InstanceConfig `json:"config"`
}

An Instance represents a full installation of Minecraft and its information.

func CreateInstance

func CreateInstance(options InstanceOptions) (Instance, error)

CreateInstance creates a new instance with the specified options.

func GetAllInstances

func GetAllInstances() ([]Instance, error)

GetAllInstances retrieves all valid instances within env.InstancesDir.

func GetInstance

func GetInstance(id string) (Instance, error)

GetInstance retrieves the instance with the specified ID.

type InstanceConfig

type InstanceConfig struct {
	WindowResolution struct {
		Width  int `json:"width"`
		Height int `json:"height"`
	} `json:"resolution"`
	Java      string `json:"java"`
	MinMemory int    `json:"min_memory"`
	MaxMemory int    `json:"max_memory"`
}

InstanceConfig represents the configurable values of an Instance.

type InstanceOptions

type InstanceOptions struct {
	GameVersion string
	Name        string
	Loader      Loader
}

type LibrariesResolvedEvent

type LibrariesResolvedEvent struct {
	Libraries int
}

LibrariesResolvedEvent is created when all game libraries have been identified and filtered.

type Loader

type Loader string

Loader represents a game mod loader.

const (
	LoaderVanilla Loader = "vanilla"
	LoaderFabric  Loader = "fabric"
	LoaderQuilt   Loader = "quilt"
)

func (Loader) String

func (loader Loader) String() string

type Runner

type Runner interface {
	Run(cmd *exec.Cmd) error
}

A Runner is a controller which manages the starting of the game.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL