session

package
v0.0.0-...-7a55708 Latest Latest
Warning

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

Go to latest
Published: Jul 4, 2025 License: GPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Manager

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

Manager maintains the in-memory server state for factions, players, claims, and more.

func NewManager

func NewManager(store storage.Store) *Manager

NewManager creates and initializes a new session manager.

func (*Manager) AddAllianceRequest

func (m *Manager) AddAllianceRequest(senderID, receiverID uuid.UUID, expiration time.Duration)

AddAllianceRequest creates a timed alliance request between two factions.

func (*Manager) AddInvitation

func (m *Manager) AddInvitation(factionID, invitedPlayerID uuid.UUID, expiration time.Duration)

AddInvitation adds a faction invite with an expiration timer.

func (*Manager) AddPlayerToFaction

func (m *Manager) AddPlayerToFaction(playerID uuid.UUID, playerName string, f *faction.Faction) error

AddPlayerToFaction adds a player to a faction and persists the change.

func (*Manager) ClaimChunk

func (m *Manager) ClaimChunk(pos chunk.Pos, f *faction.Faction) error

ClaimChunk attempts to claim a chunk for a faction.

func (*Manager) CreateFaction

func (m *Manager) CreateFaction(f *faction.Faction) error

CreateFaction persists and caches a newly created faction.

func (*Manager) DeleteFaction

func (m *Manager) DeleteFaction(f *faction.Faction) error

DeleteFaction removes a faction and cleans up related state.

func (*Manager) FormAlliance

func (m *Manager) FormAlliance(facA, facB *faction.Faction) error

FormAlliance creates a mutual alliance between two factions.

func (*Manager) GetAllFactionsData

func (m *Manager) GetAllFactionsData() []*faction.Faction

GetAllFactionsData returns a list of all cached factions.

func (*Manager) GetAllPlayersData

func (m *Manager) GetAllPlayersData() []*playerdata.Data

GetAllPlayersData returns a slice of all cached player data.

func (*Manager) GetAllPlayersMap

func (m *Manager) GetAllPlayersMap() map[uuid.UUID]*playerdata.Data

GetAllPlayersMap returns a copy of the internal player map.

func (*Manager) GetAllianceRequest

func (m *Manager) GetAllianceRequest(receiverID uuid.UUID) (*PendingAllianceRequest, bool)

GetAllianceRequest returns a pending alliance request.

func (*Manager) GetClaimOwner

func (m *Manager) GetClaimOwner(pos chunk.Pos) (uuid.UUID, bool)

GetClaimOwner returns the faction ID that owns a chunk, if any.

func (*Manager) GetFactionByID

func (m *Manager) GetFactionByID(id uuid.UUID) (*faction.Faction, bool)

GetFactionByID returns a faction by its UUID (inefficient search).

func (*Manager) GetFactionByName

func (m *Manager) GetFactionByName(name string) (*faction.Faction, bool)

GetFactionByName returns a faction by its name.

func (*Manager) GetInvitation

func (m *Manager) GetInvitation(invitedPlayerID uuid.UUID) (*PendingInvite, bool)

GetInvitation returns the pending invitation for a player.

func (*Manager) GetOrCreatePlayer

func (m *Manager) GetOrCreatePlayer(id uuid.UUID, name string) *playerdata.Data

GetOrCreatePlayer returns a player or creates a new entry if not found.

func (*Manager) GetPlayer

func (m *Manager) GetPlayer(playerID uuid.UUID) (*playerdata.Data, bool)

GetPlayer returns cached player data.

func (*Manager) GetPlayerFaction

func (m *Manager) GetPlayerFaction(playerID uuid.UUID) (*faction.Faction, bool)

GetPlayerFaction returns the faction a player belongs to.

func (*Manager) HandlePlayerQuit

func (m *Manager) HandlePlayerQuit(p *player.Player)

HandlePlayerQuit handles cleanup when a player leaves the server.

func (*Manager) IsBorderViewer

func (m *Manager) IsBorderViewer(playerID uuid.UUID) bool

IsBorderViewer checks if the player has border view enabled.

func (*Manager) LoadAllClaims

func (m *Manager) LoadAllClaims() error

LoadAllClaims loads all claimed chunks into memory.

func (*Manager) LoadAllFactions

func (m *Manager) LoadAllFactions() error

LoadAllFactions loads all factions from persistent storage into memory.

func (*Manager) LoadAllPlayers

func (m *Manager) LoadAllPlayers() error

LoadAllPlayers loads all player data from persistent storage.

func (*Manager) RemoveAllianceRequest

func (m *Manager) RemoveAllianceRequest(receiverID uuid.UUID)

RemoveAllianceRequest deletes an existing alliance request.

func (*Manager) RemoveBorderViewer

func (m *Manager) RemoveBorderViewer(playerID uuid.UUID)

RemoveBorderViewer cleans up border view state when a player disconnects.

func (*Manager) RemoveInvitation

func (m *Manager) RemoveInvitation(invitedPlayerID uuid.UUID)

RemoveInvitation cancels and deletes a pending invitation.

func (*Manager) RemovePlayerFromFaction

func (m *Manager) RemovePlayerFromFaction(playerID uuid.UUID, f *faction.Faction) error

RemovePlayerFromFaction removes a player from a faction and updates the cache and DB.

func (*Manager) ToggleBorderView

func (m *Manager) ToggleBorderView(playerID uuid.UUID) bool

ToggleBorderView toggles chunk border visualization for a player.

func (*Manager) UnclaimChunk

func (m *Manager) UnclaimChunk(pos chunk.Pos, f *faction.Faction) error

UnclaimChunk removes a claim from a chunk.

func (*Manager) UpdatePlayerChunk

func (m *Manager) UpdatePlayerChunk(p *player.Player)

UpdatePlayerChunk tracks player movement and sends title updates.

type PendingAllianceRequest

type PendingAllianceRequest struct {
	SenderID uuid.UUID
	Timer    *time.Timer
}

PendingAllianceRequest represents a pending alliance request between factions.

type PendingInvite

type PendingInvite struct {
	FactionID uuid.UUID
	Timer     *time.Timer
}

PendingInvite represents a pending faction invitation with an expiration timer.

Jump to

Keyboard shortcuts

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