diff --git a/main.go b/main.go index 960cf43..fe0d3fd 100644 --- a/main.go +++ b/main.go @@ -2,14 +2,19 @@ package main import ( "fmt" - + "os" + "os/signal" + "syscall" + "github.com/BurntSushi/toml" "github.com/bwmarrin/discordgo" ) +var client *discordgo.Session + type Config struct { - Token string `toml:"token"` - GuildID string `toml:"guildId"` + Token string `toml:"token"` + GuildID string `toml:"guildId"` } func loadConfig(filename string) (Config, error) { @@ -18,17 +23,43 @@ func loadConfig(filename string) (Config, error) { return config, err } -func main(){ +func init() { config, err := loadConfig("config.toml") if err != nil { - fmt.Println("Error occured whilst trying to load config: ", err) + fmt.Println("Error occurred whilst trying to load config:", err) return } - - client, err := discordgo.New("Bot " + config.Token) + + client, err = discordgo.New("Bot " + config.Token) if err != nil { - fmt.Println("Error initalizing bot: ", err) + fmt.Println("Error initializing bot:", err) return } - defer client.Close() + + } + +func main() { + if client == nil { + fmt.Println("Bot client is not initialized") + return + } + + client.AddHandler(func(client *discordgo.Session, r *discordgo.Ready) { + fmt.Println("Bot is online") + }) + + err := client.Open() + if err != nil { + fmt.Println("Error opening connection:", err) + return + } + + stop := make(chan os.Signal, 1) + signal.Notify(stop, os.Interrupt, syscall.SIGTERM) + <-stop + + fmt.Println("Gracefully shutting down.") + client.Close() +} +