package main import ( "flag" "fmt" "github.com/bwmarrin/discordgo" "github.com/bwmarrin/disgord/x/mux" "log" "os" "os/signal" "syscall" ) var Session, _ = discordgo.New() var bot_token string var bot_channel string var Router = mux.New() func init() { flag.StringVar(&bot_token, "t", "", "Discord Authentication Token") flag.StringVar(&bot_channel, "bc", "", "Bot status channel") flag.Parse() if os.Getenv("DISCORD_TOKEN") != "" { Session.Token = "Bot " + os.Getenv("DISCORD_TOKEN") } else { Session.Token = "Bot " + bot_token } if os.Getenv("DISCORD_BOT_CHANNEL") != "" { bot_channel = os.Getenv("DISCORD_BOT_CHANNEL") } } func main() { var err error fmt.Println("pocketbot") //flag.Parse() if Session.Token == "" { log.Println("You must provide a Discord auth token!") return } //Handlers Session.AddHandler(ready) Session.AddHandler(Router.OnMessageCreate) //Set the command prefix if os.Getenv("POCKETBOT_PREFIX") != "" { Router.Prefix = os.Getenv("POCKETBOT_PREFIX") } else { Router.Prefix = "!" } // Register the build-in help command. Router.Route("help", "Display this message.", Router.Help) Router.Route("swear", "Make me swear!", getSwear) Router.Route("maki", "It's Maki Monday my dudes!", makiMonday) Router.Route("monday", "It's Maki Monday my dudes!", makiMonday) Router.Route("mixes", "Post the link to my fire mixtapes!", postMixes) Router.Route("xkcd", "Post a specific, random, or the latest XKCD comic", getXKCD) //Open a connection to Discord err = Session.Open() if err != nil { log.Printf("Error opening connection to Discord, %s\n", err) os.Exit(1) } //Wait for a CTRL-C log.Printf("Now running. Press CTRL-C to exit.") sc := make(chan os.Signal, 1) signal.Notify(sc, syscall.SIGINT, syscall.SIGTERM, os.Interrupt, os.Kill) <-sc Session.Close() } func ready(s *discordgo.Session, event *discordgo.Ready) { s.UpdateStatus(0, "with droids!") s.ChannelMessageSend(bot_channel, "This isn't Tatooine...") }