Files
2023-08-29 21:00:29 +02:00

45 lines
857 B
Go

package services
import (
lucifer3 "git.aiterp.net/lucifer3/server"
"git.aiterp.net/lucifer3/server/events"
"time"
)
func NewTicker() lucifer3.Service {
return &tickerService{}
}
type tickerService struct{}
func (s *tickerService) Active() bool {
return true
}
func (s *tickerService) HandleEvent(bus *lucifer3.EventBus, event lucifer3.Event) {
if _, ok := event.(events.Started); ok {
go func() {
now := time.Now()
bus.RunEvent(events.Time{
Hour: now.Hour(),
Minute: now.Minute(),
})
time.Sleep(time.Now().Truncate(time.Minute).Add(time.Minute).Sub(time.Now()))
now = time.Now()
bus.RunEvent(events.Time{
Hour: now.Hour(),
Minute: now.Minute(),
})
for t := range time.NewTicker(time.Minute).C {
bus.RunEvent(events.Time{
Hour: t.Hour(),
Minute: t.Minute(),
})
}
}()
}
}