diff options
Diffstat (limited to 'pkg/bot/bot.go')
| -rw-r--r-- | pkg/bot/bot.go | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/pkg/bot/bot.go b/pkg/bot/bot.go index 71eb0e9..091e1be 100644 --- a/pkg/bot/bot.go +++ b/pkg/bot/bot.go @@ -6,24 +6,33 @@ import ( "jinx/pkg/discord" ) -func Start(token string) error { +type Bot struct { + Client *discord.Discord + cancelContext context.CancelFunc +} + +func Start(token string) (*Bot, error) { fmt.Println("hi..!") client := discord.NewClient(token) ctx, cancel := context.WithCancel(context.Background()) - defer cancel() fmt.Println("connecting..") if err := client.Connect(ctx); err != nil { - return err + cancel() + return nil, err } fmt.Println("connected..") - if err := client.Disconnect(); err != nil { - return err - } + return &Bot{ + Client: client, + cancelContext: cancel, + }, nil +} - return nil -} \ No newline at end of file +func (b *Bot) Stop() error { + b.cancelContext() + return b.Client.Disconnect() +} |
