2024-08-14 23:26:11 -03:00
|
|
|
package bot
|
|
|
|
|
|
2024-09-05 17:35:52 -03:00
|
|
|
import (
|
2024-11-04 09:02:57 -03:00
|
|
|
"forge.capytal.company/capytal/dislate/bot/events"
|
2024-09-05 17:35:52 -03:00
|
|
|
|
|
|
|
|
dgo "github.com/bwmarrin/discordgo"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func w[E any](h events.EventHandler[E]) interface{} {
|
|
|
|
|
return func(s *dgo.Session, ev E) {
|
|
|
|
|
err := h.Serve(s, ev)
|
|
|
|
|
if err != nil {
|
|
|
|
|
err.Log()
|
|
|
|
|
err.Send()
|
|
|
|
|
err.Reply()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-08-14 23:26:11 -03:00
|
|
|
|
|
|
|
|
func (b *Bot) registerEventHandlers() {
|
|
|
|
|
ehs := []any{
|
2024-09-05 17:35:52 -03:00
|
|
|
w(events.NewGuildCreate(b.logger, b.db)),
|
|
|
|
|
w(events.NewMessageCreate(b.db, b.translator)),
|
|
|
|
|
w(events.NewMessageUpdate(b.db, b.translator)),
|
|
|
|
|
w(events.NewMessageDelete(b.db)),
|
|
|
|
|
w(events.NewReady(b.logger, b.db)),
|
2024-11-04 09:02:57 -03:00
|
|
|
w(events.NewThreadCreate(b.db, b.translator)),
|
2024-08-14 23:26:11 -03:00
|
|
|
}
|
|
|
|
|
for _, h := range ehs {
|
|
|
|
|
b.session.AddHandler(h)
|
|
|
|
|
}
|
|
|
|
|
}
|