aboutsummaryrefslogtreecommitdiff
path: root/pkg/bot
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/bot')
-rw-r--r--pkg/bot/bot.go25
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()
+}