bot

package
v0.6.3 Latest Latest
Warning

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

Go to latest
Published: Mar 18, 2025 License: MIT Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Bot

type Bot struct {
	// contains filtered or unexported fields
}

func NewBot

func NewBot(ctx *botCtx.Context) *Bot

func (*Bot) Run

func (b *Bot) Run(ctx context.Context, firstRun bool, runs []run.Run) error

func (*Bot) Stop

func (b *Bot) Stop()

type GameStats

type GameStats struct {
	StartedAt  time.Time
	FinishedAt time.Time
	Reason     event.FinishReason
	Runs       []RunStats
}

type RunStats

type RunStats struct {
	Name        string
	Reason      event.FinishReason
	StartedAt   time.Time
	Items       []data.Item
	FinishedAt  time.Time
	UsedPotions []event.UsedPotionEvent
}

type Scheduler

type Scheduler struct {
	// contains filtered or unexported fields
}

func NewScheduler

func NewScheduler(manager *SupervisorManager, logger *slog.Logger) *Scheduler

func (*Scheduler) Start

func (s *Scheduler) Start()

func (*Scheduler) Stop

func (s *Scheduler) Stop()

type SinglePlayerSupervisor

type SinglePlayerSupervisor struct {
	// contains filtered or unexported fields
}

func NewSinglePlayerSupervisor

func NewSinglePlayerSupervisor(name string, bot *Bot, statsHandler *StatsHandler) (*SinglePlayerSupervisor, error)

func (*SinglePlayerSupervisor) GetContext

func (s *SinglePlayerSupervisor) GetContext() *ct.Context

func (*SinglePlayerSupervisor) GetData

func (s *SinglePlayerSupervisor) GetData() *game.Data

func (*SinglePlayerSupervisor) HandleOutOfGameFlow

func (s *SinglePlayerSupervisor) HandleOutOfGameFlow() error

This function is responsible for handling all interactions with joining/creating games

func (SinglePlayerSupervisor) KillClient

func (s SinglePlayerSupervisor) KillClient() error

func (SinglePlayerSupervisor) Name

func (s SinglePlayerSupervisor) Name() string

func (SinglePlayerSupervisor) SetWindowPosition

func (s SinglePlayerSupervisor) SetWindowPosition(x, y int)

func (*SinglePlayerSupervisor) Start

func (s *SinglePlayerSupervisor) Start() error

Start will return error if it can not be started, otherwise will always return nil

func (SinglePlayerSupervisor) Stats

func (s SinglePlayerSupervisor) Stats() Stats

func (SinglePlayerSupervisor) Stop

func (s SinglePlayerSupervisor) Stop()

func (SinglePlayerSupervisor) TogglePause

func (s SinglePlayerSupervisor) TogglePause()

type Stats

type Stats struct {
	StartedAt        time.Time
	SupervisorStatus SupervisorStatus
	Details          string
	Drops            []data.Drop
	Games            []GameStats
}

func (Stats) TotalChickens

func (s Stats) TotalChickens() int

func (Stats) TotalDeaths

func (s Stats) TotalDeaths() int

func (Stats) TotalErrors

func (s Stats) TotalErrors() int

func (Stats) TotalGames

func (s Stats) TotalGames() int

type StatsHandler

type StatsHandler struct {
	// contains filtered or unexported fields
}

func NewStatsHandler

func NewStatsHandler(name string, logger *slog.Logger) *StatsHandler

func (*StatsHandler) Handle

func (h *StatsHandler) Handle(_ context.Context, e event.Event) error

func (*StatsHandler) Stats

func (h *StatsHandler) Stats() Stats

type Supervisor

type Supervisor interface {
	Start() error
	Name() string
	Stop()
	Stats() Stats
	TogglePause()
	SetWindowPosition(x, y int)
	GetData() *game.Data
	GetContext() *ct.Context
}

type SupervisorManager

type SupervisorManager struct {
	// contains filtered or unexported fields
}

func NewSupervisorManager

func NewSupervisorManager(logger *slog.Logger, eventListener *event.Listener) *SupervisorManager

func (*SupervisorManager) AvailableSupervisors

func (mng *SupervisorManager) AvailableSupervisors() []string

func (*SupervisorManager) GetContext

func (mng *SupervisorManager) GetContext(characterName string) *context.Context

func (*SupervisorManager) GetData

func (mng *SupervisorManager) GetData(characterName string) *game.Data

func (*SupervisorManager) GetSupervisorStats

func (mng *SupervisorManager) GetSupervisorStats(supervisor string) Stats

func (*SupervisorManager) ReloadConfig

func (mng *SupervisorManager) ReloadConfig() error

func (*SupervisorManager) Start

func (mng *SupervisorManager) Start(supervisorName string, attachToExisting bool, pidHwnd ...uint32) error

func (*SupervisorManager) Status

func (mng *SupervisorManager) Status(characterName string) Stats

func (*SupervisorManager) Stop

func (mng *SupervisorManager) Stop(supervisor string)

func (*SupervisorManager) StopAll

func (mng *SupervisorManager) StopAll()

func (*SupervisorManager) TogglePause

func (mng *SupervisorManager) TogglePause(supervisor string)

type SupervisorStatus

type SupervisorStatus string
const (
	NotStarted SupervisorStatus = "Not Started"
	Starting   SupervisorStatus = "Starting"
	InGame     SupervisorStatus = "In game"
	Paused     SupervisorStatus = "Paused"
	Crashed    SupervisorStatus = "Crashed"
)

Jump to

Keyboard shortcuts

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