feat(lib,bot): start bot on Bot struct initialization

This commit is contained in:
Guz
2024-11-25 14:44:06 -03:00
parent 5c8f8e7fd8
commit 4ad8d4a7f3
3 changed files with 19 additions and 17 deletions

View File

@@ -69,7 +69,7 @@ func main() {
logger.Info("Connection to database closed", slog.String("file", *database_file))
}()
err = dislate.Run(*discord_token, dislate.RunOptions{
err = dislate.Start(*discord_token, dislate.RunOptions{
DB: db,
Translator: translator.NewMockTranslator(),
Logger: logger,

View File

@@ -16,10 +16,10 @@ type RunOptions struct {
Logger *slog.Logger
}
func Run(token string, opts ...RunOptions) error {
func Start(token string, opts ...RunOptions) error {
var err error
dislate, err = bot.New(token)
dislate, err = bot.Start(token)
if err != nil {
return err
}
@@ -27,5 +27,4 @@ func Run(token string, opts ...RunOptions) error {
return nil
}
func Stop() error {
}
func Stop() error { return dislate.Stop() }

View File

@@ -5,11 +5,10 @@ import (
)
type Bot struct {
session *discordgo.Session
commands []Command
session *discordgo.Session
}
func New(token string) (*Bot, error) {
func Start(token string) (*Bot, error) {
s, err := discordgo.New("Bot " + token)
if err != nil {
return nil, err
@@ -17,17 +16,21 @@ func New(token string) (*Bot, error) {
s.Identify.Intents = discordgo.MakeIntent(discordgo.IntentsAllWithoutPrivileged)
return &Bot{
session: s,
commands: []Command{},
}, nil
}
func (b *Bot) Start() error {
if err := b.session.Open(); err != nil {
return err
if err := s.Open(); err != nil {
return nil, err
}
bot := &Bot{
session: s,
}
return bot, nil
}
func (b *Bot) Stop() error {
if err := b.session.Close(); err != nil {
return err
}
return nil
}