aboutsummaryrefslogtreecommitdiff
path: root/pkg/bot
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2022-04-04 01:53:41 +0200
committerMel <einebeere@gmail.com>2022-04-04 01:53:41 +0200
commitfdd0ea7911b2c98f95ef99f6d1518ee4eb4dfd7a (patch)
tree702f893e5ef2ec4196cd37393014b3ca59e5c0dc /pkg/bot
parentb80bda2da026086523f1de8f460637a376c53bf2 (diff)
downloadjinx-fdd0ea7911b2c98f95ef99f6d1518ee4eb4dfd7a.tar.zst
jinx-fdd0ea7911b2c98f95ef99f6d1518ee4eb4dfd7a.zip
Listen to incoming messages and respond to pings
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()
+}