package main import ( "log" "os" "os/signal" "syscall" "github.com/bwmarrin/discordgo" ) var ( cfg *Config session *discordgo.Session ) func main() { var err error cfg, err = LoadConfig("config.yaml") if err != nil { log.Fatalf("Error loading config: %v", err) } session, err = discordgo.New("Bot " + cfg.BotToken) if err != nil { log.Fatalf("Error creating session: %v", err) } session.AddHandler(ready) session.Identify.Intents = discordgo.IntentsGuilds if err := session.Open(); err != nil { log.Fatalf("Error connecting: %v", err) } defer session.Close() log.Println("Bot started") sc := make(chan os.Signal, 1) signal.Notify(sc, syscall.SIGINT, syscall.SIGTERM, os.Interrupt) <-sc log.Println("Shutting down...") } func ready(s *discordgo.Session, r *discordgo.Ready) { log.Printf("Logged in as %s", r.User.String()) monitor := NewStatusMonitor(s, cfg) monitor.Start() }