github.com/diamondburned/arikawa/v2@v2.1.0/_example/simple/main.go (about) 1 // Package main demonstrates a bare simple bot without a state cache. It logs 2 // all messages it sees into stderr. 3 package main 4 5 import ( 6 "log" 7 "os" 8 9 "github.com/diamondburned/arikawa/v2/gateway" 10 "github.com/diamondburned/arikawa/v2/session" 11 ) 12 13 // To run, do `BOT_TOKEN="TOKEN HERE" go run .` 14 15 func main() { 16 var token = os.Getenv("BOT_TOKEN") 17 if token == "" { 18 log.Fatalln("No $BOT_TOKEN given.") 19 } 20 21 s, err := session.New("Bot " + token) 22 if err != nil { 23 log.Fatalln("Session failed:", err) 24 } 25 26 s.AddHandler(func(c *gateway.MessageCreateEvent) { 27 log.Println(c.Author.Username, "sent", c.Content) 28 }) 29 30 // Add the needed Gateway intents. 31 s.Gateway.AddIntents(gateway.IntentGuildMessages) 32 s.Gateway.AddIntents(gateway.IntentDirectMessages) 33 34 if err := s.Open(); err != nil { 35 log.Fatalln("Failed to connect:", err) 36 } 37 defer s.Close() 38 39 u, err := s.Me() 40 if err != nil { 41 log.Fatalln("Failed to get myself:", err) 42 } 43 44 log.Println("Started as", u.Username) 45 46 // Block forever. 47 select {} 48 }