Documentation
¶
Index ¶
- func HologramCommands(hm *HologramManager) []cmd.Command
- func NewMatchID(gameID string) string
- func RemoveScoreboard(p *player.Player)
- func SendMatchScoreboard(p *player.Player, matchKills int, aliveCount int, chestTimeLeft time.Duration)
- func SetPlayerScale(players []*player.Player, remaining int, startMessage string)
- type Arena
- type ChestPosition
- type ChestType
- type Config
- type ConfigManager
- type Countdown
- func (c *Countdown) Cancel()
- func (c *Countdown) IsRunning() bool
- func (c *Countdown) OnBroadcast(fn func(msg string)) *Countdown
- func (c *Countdown) OnCancel(fn func()) *Countdown
- func (c *Countdown) OnComplete(fn func()) *Countdown
- func (c *Countdown) Remaining() int
- func (c *Countdown) Start()
- func (c *Countdown) WithActions(actions ...CountdownAction) *Countdown
- type CountdownAction
- type DatabaseConfig
- type EndReason
- type Framework
- func (f *Framework) AttachLobbyHandler()
- func (f *Framework) Config() *ConfigManager
- func (f *Framework) DataFolder() string
- func (f *Framework) DiscoverMaps() error
- func (f *Framework) Games() *GameManager
- func (f *Framework) Holograms() *HologramManager
- func (f *Framework) Logger() *LogWrapper
- func (f *Framework) Loot() *LootManager
- func (f *Framework) Maps() *MapManager
- func (f *Framework) Matches() *MatchManager
- func (f *Framework) Players() *PlayerManager
- func (f *Framework) SetDefaultWorld(w *world.World)
- func (f *Framework) SetServer(srv *server.Server)
- func (f *Framework) SetupLobby() error
- func (f *Framework) Shutdown()
- func (f *Framework) Stats() *StatsManager
- func (f *Framework) Worlds() *WorldManager
- type Game
- type GameConfig
- type GameManager
- type GameRegistry
- type GlobalConfig
- type Hologram
- type HologramManager
- func (hm *HologramManager) All() map[string]*Hologram
- func (hm *HologramManager) Create(name string, pos mgl64.Vec3, lines []string) (*Hologram, error)
- func (hm *HologramManager) Delete(name string)
- func (hm *HologramManager) Get(name string) (*Hologram, bool)
- func (hm *HologramManager) MoveTo(name string, pos mgl64.Vec3) error
- func (hm *HologramManager) SetLines(name string, lines []string) error
- func (hm *HologramManager) SetLobbyWorld(w *world.World)
- type LobbySpawn
- type LogWrapper
- type LootEnchantment
- type LootEntry
- type LootManager
- type LootTable
- type MapManager
- type Match
- type MatchManager
- func (m *MatchManager) FindSuitableMatch(gameID string, maxPlayers int) Match
- func (m *MatchManager) Get(id string) (Match, bool)
- func (m *MatchManager) MatchByPlayer(p *player.Player) (Match, bool)
- func (m *MatchManager) Register(match Match)
- func (m *MatchManager) Shutdown()
- func (m *MatchManager) Unregister(id string)
- type MatchState
- type PlayerManager
- func (pm *PlayerManager) AddPlayer(p *player.Player, matchID string)
- func (pm *PlayerManager) IncrementKills(p *player.Player)
- func (pm *PlayerManager) IsInMatch(p *player.Player) bool
- func (pm *PlayerManager) LobbySpawn() LobbySpawn
- func (pm *PlayerManager) PlayerState(p *player.Player) (*PlayerState, bool)
- func (pm *PlayerManager) RemoveAllFromMatch(matchID string)
- func (pm *PlayerManager) RemovePlayer(p *player.Player)
- func (pm *PlayerManager) ReturnToLobby(p *player.Player)
- func (pm *PlayerManager) SendLobbyScoreboard(p *player.Player)
- func (pm *PlayerManager) SetDead(p *player.Player)
- func (pm *PlayerManager) SetLobbyWorld(w *world.World)
- func (pm *PlayerManager) SetServer(srv *server.Server)
- func (pm *PlayerManager) SetSpawn(pos mgl64.Vec3, yaw, pitch float64)
- func (pm *PlayerManager) SetSpectating(p *player.Player)
- func (pm *PlayerManager) SetStatsManager(sm *StatsManager)
- type PlayerState
- type PlayerStats
- type RemoveReason
- type SpectatorManager
- type StatsManager
- func (sm *StatsManager) IncrementDeaths(uuid uuid.UUID)
- func (sm *StatsManager) IncrementGames(uuid uuid.UUID)
- func (sm *StatsManager) IncrementKills(uuid uuid.UUID)
- func (sm *StatsManager) IncrementWins(uuid uuid.UUID)
- func (sm *StatsManager) LoadPlayerStats(uuid uuid.UUID) *PlayerStats
- func (sm *StatsManager) SavePlayerStats(uuid uuid.UUID, stats *PlayerStats) error
- type WorldHandler
- type WorldManager
- type WorldPool
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func HologramCommands ¶
func HologramCommands(hm *HologramManager) []cmd.Command
func NewMatchID ¶
func RemoveScoreboard ¶
func SendMatchScoreboard ¶
Types ¶
type ChestPosition ¶
type Config ¶
type Config struct {
GameSettings map[string]GameConfig `yaml:"games"`
Global GlobalConfig `yaml:"global"`
Database DatabaseConfig `yaml:"database"`
}
func DefaultConfig ¶
func DefaultConfig() *Config
type ConfigManager ¶
type ConfigManager struct {
// contains filtered or unexported fields
}
func NewConfigManager ¶
func NewConfigManager(dataDir string, logger *LogWrapper) (*ConfigManager, error)
func (*ConfigManager) Config ¶
func (cm *ConfigManager) Config() *Config
func (*ConfigManager) GameConfig ¶
func (cm *ConfigManager) GameConfig(gameID string) GameConfig
type Countdown ¶
type Countdown struct {
// contains filtered or unexported fields
}
func NewCountdown ¶
func NewCountdown(seconds int, logger *LogWrapper) *Countdown
func (*Countdown) OnBroadcast ¶
func (*Countdown) OnComplete ¶
func (*Countdown) WithActions ¶
func (c *Countdown) WithActions(actions ...CountdownAction) *Countdown
type CountdownAction ¶
type DatabaseConfig ¶
type Framework ¶
type Framework struct {
// contains filtered or unexported fields
}
func New ¶
func New(dataDir string, logger *LogWrapper, blockReg world.BlockRegistry) (*Framework, error)
func (*Framework) AttachLobbyHandler ¶
func (f *Framework) AttachLobbyHandler()
func (*Framework) Config ¶
func (f *Framework) Config() *ConfigManager
func (*Framework) DataFolder ¶
func (*Framework) DiscoverMaps ¶
func (*Framework) Games ¶
func (f *Framework) Games() *GameManager
func (*Framework) Holograms ¶
func (f *Framework) Holograms() *HologramManager
func (*Framework) Logger ¶
func (f *Framework) Logger() *LogWrapper
func (*Framework) Loot ¶
func (f *Framework) Loot() *LootManager
func (*Framework) Maps ¶
func (f *Framework) Maps() *MapManager
func (*Framework) Matches ¶
func (f *Framework) Matches() *MatchManager
func (*Framework) Players ¶
func (f *Framework) Players() *PlayerManager
func (*Framework) SetDefaultWorld ¶
func (*Framework) SetupLobby ¶
func (*Framework) Stats ¶
func (f *Framework) Stats() *StatsManager
func (*Framework) Worlds ¶
func (f *Framework) Worlds() *WorldManager
type GameConfig ¶
type GameConfig struct {
Enabled bool `yaml:"enabled"`
MinPlayers int `yaml:"min_players"`
MaxPlayers int `yaml:"max_players"`
CountdownSeconds int `yaml:"countdown_seconds"`
GameDurationSeconds int `yaml:"game_duration_seconds"`
GracePeriodSeconds int `yaml:"grace_period_seconds"`
InvincibilitySeconds int `yaml:"invincibility_seconds"`
BackendTaskTicks int `yaml:"backend_task_ticks"`
}
type GameManager ¶
type GameManager struct {
// contains filtered or unexported fields
}
func NewGameManager ¶
func NewGameManager(registry *GameRegistry, matchMgr *MatchManager, worldMgr *WorldManager, playerMgr *PlayerManager, mapMgr *MapManager, logger *LogWrapper) *GameManager
func (*GameManager) JoinGame ¶
func (m *GameManager) JoinGame(p *player.Player, gameID string) error
func (*GameManager) Registry ¶
func (m *GameManager) Registry() *GameRegistry
type GameRegistry ¶
type GameRegistry struct {
// contains filtered or unexported fields
}
func NewGameRegistry ¶
func NewGameRegistry() *GameRegistry
func (*GameRegistry) All ¶
func (r *GameRegistry) All() []Game
func (*GameRegistry) Register ¶
func (r *GameRegistry) Register(g Game) error
type GlobalConfig ¶
type HologramManager ¶
type HologramManager struct {
// contains filtered or unexported fields
}
func NewHologramManager ¶
func NewHologramManager(dataDir string, logger *LogWrapper) *HologramManager
func (*HologramManager) All ¶
func (hm *HologramManager) All() map[string]*Hologram
func (*HologramManager) Delete ¶
func (hm *HologramManager) Delete(name string)
func (*HologramManager) MoveTo ¶
func (hm *HologramManager) MoveTo(name string, pos mgl64.Vec3) error
func (*HologramManager) SetLines ¶
func (hm *HologramManager) SetLines(name string, lines []string) error
func (*HologramManager) SetLobbyWorld ¶
func (hm *HologramManager) SetLobbyWorld(w *world.World)
type LobbySpawn ¶
type LogWrapper ¶
func NewLogWrapper ¶
func NewLogWrapper(logger *slog.Logger) *LogWrapper
type LootEnchantment ¶
type LootEntry ¶
type LootEntry struct {
Item string `yaml:"item"`
AmountMin int `yaml:"amount_min"`
AmountMax int `yaml:"amount_max"`
Chance float64 `yaml:"chance"`
Enchantments []LootEnchantment `yaml:"enchantments,omitempty"`
}
type LootManager ¶
type LootManager struct {
// contains filtered or unexported fields
}
func NewLootManager ¶
func NewLootManager(dataDir string, logger *LogWrapper) (*LootManager, error)
func (*LootManager) GenerateLoot ¶
func (lm *LootManager) GenerateLoot(tableName string) []map[string]int
type MapManager ¶
type MapManager struct {
// contains filtered or unexported fields
}
func NewMapManager ¶
func NewMapManager(dataDir string, logger *LogWrapper, blockReg world.BlockRegistry) *MapManager
func (*MapManager) ArenaByName ¶
func (mm *MapManager) ArenaByName(name string) (Arena, bool)
func (*MapManager) Arenas ¶
func (mm *MapManager) Arenas() []Arena
func (*MapManager) DiscoverMaps ¶
func (mm *MapManager) DiscoverMaps(gameID string) error
func (*MapManager) SelectArena ¶
func (mm *MapManager) SelectArena(gameID string) (Arena, error)
type MatchManager ¶
type MatchManager struct {
// contains filtered or unexported fields
}
func NewMatchManager ¶
func NewMatchManager(worldMgr *WorldManager, logger *LogWrapper) *MatchManager
func (*MatchManager) FindSuitableMatch ¶
func (m *MatchManager) FindSuitableMatch(gameID string, maxPlayers int) Match
func (*MatchManager) MatchByPlayer ¶
func (m *MatchManager) MatchByPlayer(p *player.Player) (Match, bool)
func (*MatchManager) Register ¶
func (m *MatchManager) Register(match Match)
func (*MatchManager) Shutdown ¶
func (m *MatchManager) Shutdown()
func (*MatchManager) Unregister ¶
func (m *MatchManager) Unregister(id string)
type MatchState ¶
type MatchState int
const ( MatchStateWaiting MatchState = iota MatchStateCountdown MatchStateStarting MatchStatePlaying MatchStateFinished MatchStateClosed )
func (MatchState) String ¶
func (s MatchState) String() string
type PlayerManager ¶
type PlayerManager struct {
// contains filtered or unexported fields
}
func NewPlayerManager ¶
func NewPlayerManager(dataDir string, logger *LogWrapper) *PlayerManager
func (*PlayerManager) AddPlayer ¶
func (pm *PlayerManager) AddPlayer(p *player.Player, matchID string)
func (*PlayerManager) IncrementKills ¶
func (pm *PlayerManager) IncrementKills(p *player.Player)
func (*PlayerManager) LobbySpawn ¶
func (pm *PlayerManager) LobbySpawn() LobbySpawn
func (*PlayerManager) PlayerState ¶
func (pm *PlayerManager) PlayerState(p *player.Player) (*PlayerState, bool)
func (*PlayerManager) RemoveAllFromMatch ¶
func (pm *PlayerManager) RemoveAllFromMatch(matchID string)
func (*PlayerManager) RemovePlayer ¶
func (pm *PlayerManager) RemovePlayer(p *player.Player)
func (*PlayerManager) ReturnToLobby ¶
func (pm *PlayerManager) ReturnToLobby(p *player.Player)
func (*PlayerManager) SendLobbyScoreboard ¶
func (pm *PlayerManager) SendLobbyScoreboard(p *player.Player)
func (*PlayerManager) SetDead ¶
func (pm *PlayerManager) SetDead(p *player.Player)
func (*PlayerManager) SetLobbyWorld ¶
func (pm *PlayerManager) SetLobbyWorld(w *world.World)
func (*PlayerManager) SetServer ¶
func (pm *PlayerManager) SetServer(srv *server.Server)
func (*PlayerManager) SetSpawn ¶
func (pm *PlayerManager) SetSpawn(pos mgl64.Vec3, yaw, pitch float64)
func (*PlayerManager) SetSpectating ¶
func (pm *PlayerManager) SetSpectating(p *player.Player)
func (*PlayerManager) SetStatsManager ¶
func (pm *PlayerManager) SetStatsManager(sm *StatsManager)
type PlayerState ¶
type PlayerStats ¶
type RemoveReason ¶
type RemoveReason string
const ( RemoveReasonQuit RemoveReason = "quit" RemoveReasonDeath RemoveReason = "death" RemoveReasonKicked RemoveReason = "kicked" RemoveReasonTransfer RemoveReason = "transfer" )
type SpectatorManager ¶
type SpectatorManager struct {
// contains filtered or unexported fields
}
func NewSpectatorManager ¶
func NewSpectatorManager(logger *LogWrapper) *SpectatorManager
func (*SpectatorManager) CycleSpectatorTarget ¶
func (sm *SpectatorManager) CycleSpectatorTarget(p *player.Player, alive []*player.Player)
func (*SpectatorManager) DisableSpectator ¶
func (sm *SpectatorManager) DisableSpectator(p *player.Player)
func (*SpectatorManager) EnableSpectator ¶
func (sm *SpectatorManager) EnableSpectator(p *player.Player)
type StatsManager ¶
type StatsManager struct {
// contains filtered or unexported fields
}
func NewStatsManager ¶
func NewStatsManager(dataDir string, logger *LogWrapper) (*StatsManager, error)
func (*StatsManager) IncrementDeaths ¶
func (sm *StatsManager) IncrementDeaths(uuid uuid.UUID)
func (*StatsManager) IncrementGames ¶
func (sm *StatsManager) IncrementGames(uuid uuid.UUID)
func (*StatsManager) IncrementKills ¶
func (sm *StatsManager) IncrementKills(uuid uuid.UUID)
func (*StatsManager) IncrementWins ¶
func (sm *StatsManager) IncrementWins(uuid uuid.UUID)
func (*StatsManager) LoadPlayerStats ¶
func (sm *StatsManager) LoadPlayerStats(uuid uuid.UUID) *PlayerStats
func (*StatsManager) SavePlayerStats ¶
func (sm *StatsManager) SavePlayerStats(uuid uuid.UUID, stats *PlayerStats) error
type WorldHandler ¶
type WorldManager ¶
type WorldManager struct {
// contains filtered or unexported fields
}
func NewWorldManager ¶
func NewWorldManager(dataDir string, logger *LogWrapper, reg world.BlockRegistry) *WorldManager
func (*WorldManager) AcquireWorld ¶
func (wm *WorldManager) AcquireWorld(arena Arena) (*world.World, error)
func (*WorldManager) CreateWorld ¶
func (wm *WorldManager) CreateWorld(dir string) (*world.World, error)
func (*WorldManager) OpenWorld ¶
func (wm *WorldManager) OpenWorld(dir string) (*world.World, error)
func (*WorldManager) ReturnWorld ¶
func (wm *WorldManager) ReturnWorld(worldName string)
func (*WorldManager) Shutdown ¶
func (wm *WorldManager) Shutdown()
type WorldPool ¶
type WorldPool struct {
// contains filtered or unexported fields
}
func NewWorldPool ¶
func NewWorldPool(dir string, maxIdle int, reg world.BlockRegistry, logger *LogWrapper) *WorldPool
Click to show internal directories.
Click to hide internal directories.