github.com/diamondburned/arikawa@v1.3.14/_example/advanced_bot/main.go (about) 1 package main 2 3 import ( 4 "log" 5 "os" 6 7 "github.com/diamondburned/arikawa/bot" 8 ) 9 10 // To run, do `BOT_TOKEN="TOKEN HERE" go run .` 11 12 func main() { 13 var token = os.Getenv("BOT_TOKEN") 14 if token == "" { 15 log.Fatalln("No $BOT_TOKEN given.") 16 } 17 18 commands := &Bot{} 19 20 wait, err := bot.Start(token, commands, func(ctx *bot.Context) error { 21 ctx.HasPrefix = bot.NewPrefix("!", "~") 22 ctx.EditableCommands = true 23 24 // Subcommand demo, but this can be in another package. 25 ctx.MustRegisterSubcommand(&Debug{}) 26 27 return nil 28 }) 29 30 if err != nil { 31 log.Fatalln(err) 32 } 33 34 log.Println("Bot started") 35 36 // As of this commit, wait() will block until SIGINT or fatal. The past 37 // versions close on call, but this one will block. 38 // If for some reason you want the Cancel() function, manually make a new 39 // context. 40 if err := wait(); err != nil { 41 log.Fatalln("Gateway fatal error:", err) 42 } 43 }