From d05cea050ca8a2028ee0aec0e4def3802c3d56b6 Mon Sep 17 00:00:00 2001 From: Grail Finder Date: Fri, 21 Mar 2025 18:58:05 +0300 Subject: refactor: reorder cluedo logic and improve player card display in chatRound --- bot.go | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) (limited to 'bot.go') diff --git a/bot.go b/bot.go index 767e640..24c2bcf 100644 --- a/bot.go +++ b/bot.go @@ -285,22 +285,17 @@ func chatRound(userMsg, role string, tv *tview.TextView, regen, resume bool) { return } } - choseChunkParser() - reader, err := chunkParser.FormMsg(userMsg, role, resume) - if reader == nil || err != nil { - logger.Error("empty reader from msgs", "role", role, "error", err) - return - } - go sendMsgToLLM(reader) - logger.Debug("looking at vars in chatRound", "msg", userMsg, "regen", regen, "resume", resume) - // Handle Cluedo game flow + // should go before form msg, since formmsg takes chatBody and makes ioreader out of it + // role is almost always user, unless it's regen or resume + // cannot get in this block, since cluedoState is nil; + // check if cfg.EnableCluedo is true and init the cluedo state; ai! if cfg.EnableCluedo && cluedoState != nil && !resume { + notifyUser("got in cluedo", "yay") currentPlayer := playerOrder[0] playerOrder = append(playerOrder[1:], currentPlayer) // Rotate turns if role == cfg.UserRole { - userMsg = fmt.Sprintf("Your cards: %s\n%s", - cluedoState.GetPlayerCards(currentPlayer), userMsg) + fmt.Fprintf(tv, "Your (%s) cards: %s\n", currentPlayer, cluedoState.GetPlayerCards(currentPlayer)) } else { chatBody.Messages = append(chatBody.Messages, models.RoleMsg{ Role: cfg.ToolRole, @@ -308,7 +303,14 @@ func chatRound(userMsg, role string, tv *tview.TextView, regen, resume bool) { }) } } - + choseChunkParser() + reader, err := chunkParser.FormMsg(userMsg, role, resume) + if reader == nil || err != nil { + logger.Error("empty reader from msgs", "role", role, "error", err) + return + } + go sendMsgToLLM(reader) + logger.Debug("looking at vars in chatRound", "msg", userMsg, "regen", regen, "resume", resume) if !resume { fmt.Fprintf(tv, "[-:-:b](%d) ", len(chatBody.Messages)) fmt.Fprint(tv, roleToIcon(cfg.AssistantRole)) -- cgit v1.2.3