Fix: timer update [WIP]

This commit is contained in:
Grail Finder
2025-07-16 11:51:27 +03:00
parent 995f9f6249
commit 57a2abc1f9
6 changed files with 33 additions and 26 deletions

View File

@ -14,12 +14,12 @@ type TurnEndCallback func(ctx context.Context, roomID string)
type TickCallback func(ctx context.Context, roomID string, timeLeft uint32)
type RoomTimer struct {
ticker *time.Ticker
done chan bool
roomID string
ticker *time.Ticker
done chan bool
roomID string
onTurnEnd TurnEndCallback
onTick TickCallback
log *slog.Logger
onTick TickCallback
log *slog.Logger
}
var (
@ -28,7 +28,7 @@ var (
)
// StartTurnTimer initializes and starts a new turn timer for a given room.
func StartTurnTimer(ctx context.Context, roomID string, timeLeft uint32, onTurnEnd TurnEndCallback, onTick TickCallback, logger *slog.Logger) {
func StartTurnTimer(ctx context.Context, roomID string, timeLeft int32, onTurnEnd TurnEndCallback, onTick TickCallback, logger *slog.Logger) {
mu.Lock()
defer mu.Unlock()
@ -39,14 +39,14 @@ func StartTurnTimer(ctx context.Context, roomID string, timeLeft uint32, onTurnE
ticker := time.NewTicker(1 * time.Second)
done := make(chan bool)
rt := &RoomTimer{
ticker: ticker,
done: done,
roomID: roomID,
ticker: ticker,
done: done,
roomID: roomID,
onTurnEnd: onTurnEnd,
onTick: onTick,
log: logger,
onTick: onTick,
log: logger,
}
timers[roomID] = rt
@ -62,7 +62,7 @@ func StartTurnTimer(ctx context.Context, roomID string, timeLeft uint32, onTurnE
StopTurnTimer(roomID)
return
}
rt.onTick(ctx, roomID, currentLeft)
rt.onTick(ctx, roomID, uint32(currentLeft))
currentLeft--
}
}