package bot import ( "context" "fmt" "jinx/pkg/discord" ) 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()) fmt.Println("connecting..") if err := client.Connect(ctx); err != nil { cancel() return nil, err } fmt.Println("connected..") return &Bot{ Client: client, cancelContext: cancel, }, nil } func (b *Bot) Stop() error { b.cancelContext() return b.Client.Disconnect() }