LorekeeperTalkManager

Manages free-form Lorekeeper conversations that are summarized into a single archival entry.

Session transcripts are kept only in memory and discarded after a gist summary is written.

Types

Link copied to clipboard
data class ActiveTalkSnapshot(val playerId: UUID, val playerName: String, val topic: String? = null, val turnCount: Int = 0, val awaitingReply: Boolean = false)

Snapshot of an active talk session for external observers.

Functions

Link copied to clipboard
fun endTalk(player: ServerPlayer): Boolean

Ends the active talk session and archives a gist summary.

Link copied to clipboard

Returns active talk session snapshots for all players.

Link copied to clipboard
fun handleChatMessage(player: ServerPlayer, message: String): Boolean

Handles player chat for active talk sessions. Returns true when chat was consumed.

Link copied to clipboard
fun hasActiveTalk(playerId: UUID): Boolean

Returns true when the player currently has an active talk session.

Link copied to clipboard
fun startTalk(player: ServerPlayer, lorekeeperEntityId: UUID? = null): Boolean

Starts a talk session when the player is near a Lorekeeper NPC.