package bot import ( "jinx/pkg/discord" "jinx/pkg/discord/events" "github.com/rs/zerolog" ) type Bot struct { client *discord.Discord logger *zerolog.Logger } func NewBot(token string, logger *zerolog.Logger) *Bot { return &Bot{ client: discord.New(token, logger), logger: logger, } } func (b *Bot) Start() error { b.client.On(events.READY, func(_ any) { b.logger.Info().Msg("ready!") }) b.client.On(events.MESSAGE, func(m any) { msg := m.(events.Message) b.logger.Debug().Msgf("message: %s", msg.Content) if msg.Content == "ping" { if err := b.client.SendMessage(msg.ChannelID, "pong"); err != nil { b.logger.Error().Err(err).Msg("error sending message") } } }) if err := b.client.Connect(); err != nil { return err } return nil } func (b *Bot) Stop() error { return b.client.Disconnect() }