package main import ( "log" "os" "os/signal" "syscall" "github.com/bwmarrin/discordgo" "github.com/dustinpianalto/dice/exts" "github.com/dustinpianalto/disgoman" ) var ( Token string ) //func init() { // flag.StringVar(&Token, "t", "", "Bot Token") // flag.Parse() //} func main() { Token = os.Getenv("DISCORDGO_TOKEN") dg, err := discordgo.New("Bot " + Token) if err != nil { log.Println("There was an error when creating the Discord Session, ", err) return } dg.State.MaxMessageCount = 100 //prefixes := []string{ // "Go.", //} owners := []string{ "351794468870946827", } // Arguments are: // prefixes - []string // owner ids - []string // ignore bots - bool // check perms - bool handler := disgoman.CommandManager{ Prefixes: getPrefixes, Owners: owners, StatusManager: disgoman.GetDefaultStatusManager(), ErrorChannel: make(chan disgoman.CommandError, 10), Commands: make(map[string]*disgoman.Command), IgnoreBots: true, CheckPermissions: false, } // Add Commands exts.AddCommands(&handler) dg.AddHandler(handler.OnMessage) dg.AddHandler(exts.DiceCommand) dg.AddHandler(handler.StatusManager.OnReady) err = dg.Open() if err != nil { log.Println("There was an error opening the connection, ", err) return } // Start the Error handler in a goroutine go ErrorHandler(handler.ErrorChannel) log.Println("The Bot is now running.") sc := make(chan os.Signal, 1) signal.Notify(sc, syscall.SIGINT, syscall.SIGTERM, os.Interrupt, os.Kill) <-sc log.Println("Shutting Down...") err = dg.Close() if err != nil { log.Println(err) } } func getPrefixes(guildID string) []string { return []string{"/", "\\"} } func ErrorHandler(ErrorChan chan disgoman.CommandError) { for ce := range ErrorChan { msg := ce.Message if msg == "" { msg = ce.Error.Error() } _, _ = ce.Context.Send(msg) log.Println(ce.Error) } }