Fix: limit 0 because of too early call of notifybot
This commit is contained in:
		| @@ -345,12 +345,13 @@ func HandleGiveClue(w http.ResponseWriter, r *http.Request) { | ||||
| 	fi.Room.OpenedThisTurn = 0 | ||||
| 	StartTurnTimer(fi.Room.ID, fi.Room.Settings.RoundTime) | ||||
| 	log.Debug("given clue", "clue", clue, "limit", fi.Room.ThisTurnLimit) | ||||
| 	notify(models.NotifyBacklogPrefix+fi.Room.ID, clue+num) | ||||
| 	notifyBotIfNeeded(fi.Room) | ||||
| 	// notify(models.NotifyBacklogPrefix+fi.Room.ID, clue+num) | ||||
| 	notify(models.NotifyRoomUpdatePrefix+fi.Room.ID, clue+num) | ||||
| 	if err := saveFullInfo(r.Context(), fi); err != nil { | ||||
| 		abortWithError(w, err.Error()) | ||||
| 		return | ||||
| 	} | ||||
| 	notifyBotIfNeeded(fi.Room) | ||||
| } | ||||
|  | ||||
| func HandleRenotifyBot(w http.ResponseWriter, r *http.Request) { | ||||
|   | ||||
| @@ -60,6 +60,12 @@ func (b *Bot) checkGuess(word string, room *models.Room) error { | ||||
| 		return fmt.Errorf("fn: checkGuess; %s does not exists", word) | ||||
| 	} | ||||
| 	room.RevealSpecificWord(word) | ||||
| 	if err := repo.WordCardReveal(context.Background(), word, room.ID); err != nil { | ||||
| 		b.log.Error("failed to reveal word in db", "word", word, "color", | ||||
| 			color, "exists", exists, "limit", room.ThisTurnLimit, | ||||
| 			"opened", room.OpenedThisTurn) | ||||
| 		return err | ||||
| 	} | ||||
| 	room.UpdateCounter() | ||||
| 	action := models.Action{ | ||||
| 		RoomID:     room.ID, | ||||
| @@ -156,6 +162,7 @@ func (b *Bot) checkGuess(word string, room *models.Room) error { | ||||
| 		b.log.Error("failed to create action", "error", err, "action", action) | ||||
| 		return err | ||||
| 	} | ||||
|  | ||||
| 	if err := repo.RoomUpdate(ctx, room); err != nil { | ||||
| 		// nolint: errcheck | ||||
| 		tx.Rollback() | ||||
| @@ -288,7 +295,7 @@ func (b *Bot) BotMove() { | ||||
| 		if err != nil { | ||||
| 			b.log.Warn("failed to parse could_be", "bot_resp", tempMap, "bot_name", b.BotName) | ||||
| 		} | ||||
| 		entry := fmt.Sprintf("also considered this: %v", couldBe) | ||||
| 		entry := fmt.Sprintf("%s guessed: %s; also considered this: %v", b.BotName, guess, couldBe) | ||||
| 		lj := models.Journal{ | ||||
| 			Entry:    entry, | ||||
| 			Username: b.BotName, | ||||
| @@ -306,9 +313,16 @@ func (b *Bot) BotMove() { | ||||
| 		b.log.Error("unexpected role", "role", b.Role, "resp-map", tempMap) | ||||
| 		return | ||||
| 	} | ||||
| 	// just incase, get the room once more | ||||
| 	room, err = repo.RoomGetExtended(context.Background(), b.RoomID) | ||||
| 	if err != nil { | ||||
| 		b.log.Error("bot loop", "error", err) | ||||
| 		return | ||||
| 	} | ||||
| 	if botName := room.WhichBotToMove(); botName != "" { | ||||
| 		b.log.Debug("notifying bot", "name", botName) | ||||
| 		SignalChanMap[botName] <- true | ||||
| 		b.log.Debug("after sending the signal", "name", botName) | ||||
| 	} | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -294,7 +294,7 @@ func getGuesser(m map[string]BotPlayer, team UserTeam) string { | ||||
| func (r *Room) WhichBotToMove() string { | ||||
| 	fmt.Println("looking for bot to move", "team-turn:", r.TeamTurn, | ||||
| 		"mime-done:", r.MimeDone, "bot-map:", r.BotMap, "is_running:", r.IsRunning, | ||||
| 		"blueMime:", r.BlueTeam.Mime, "redMime:", r.RedTeam.Mime) | ||||
| 		"blueMime:", r.BlueTeam.Mime, "redMime:", r.RedTeam.Mime, "card-limit:", r.ThisTurnLimit, "opened:", r.OpenedThisTurn) | ||||
| 	if !r.IsRunning { | ||||
| 		return "" | ||||
| 	} | ||||
|   | ||||
							
								
								
									
										1
									
								
								todos.md
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								todos.md
									
									
									
									
									
								
							| @@ -86,3 +86,4 @@ | ||||
| - start new game satrted timer for a mime; (feature? in other cases mime has no timer); | ||||
| - timer ended and went to 300; | ||||
| - mime sees the clue input out of turn; | ||||
| - there is a problem of two timers, they both could switch turn, but it is not easy to stop them from llmapi or handlers. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Grail Finder
					Grail Finder