package main import ( "flag" "fmt" "github.com/bwmarrin/discordgo" ) var ( Email string Password string Token string AppName string ConvToken string DeleteID string ListOnly bool ) func init() { flag.StringVar(&Email, "e", "", "Account Email") flag.StringVar(&Password, "p", "", "Account Password") flag.StringVar(&Token, "t", "", "Account Token") flag.StringVar(&DeleteID, "d", "", "Application ID to delete") flag.BoolVar(&ListOnly, "l", false, "List Applications Only") flag.StringVar(&AppName, "a", "", "App/Bot Name") flag.StringVar(&ConvToken, "c", "", "Token of account to convert.") flag.Parse() } func main() { // Create a new Discord session using the provided login information. dg, err := discordgo.New(Email, Password, Token) if err != nil { fmt.Println("error creating Discord session,", err) return } // If -l set, only display a list of existing applications // for the given account. if ListOnly { aps, err := dg.Applications() if err != nil { fmt.Println("error fetching applications,", err) return } for k, v := range aps { fmt.Printf("%d : --------------------------------------\n", k) fmt.Printf("ID: %s\n", v.ID) fmt.Printf("Name: %s\n", v.Name) fmt.Printf("Secret: %s\n", v.Secret) fmt.Printf("Description: %s\n", v.Description) } return } // if -d set, delete the given Application if DeleteID != "" { err := dg.ApplicationDelete(DeleteID) if err != nil { fmt.Println("error deleting application,", err) } return } // Create a new application. ap := &discordgo.Application{} ap.Name = AppName ap, err = dg.ApplicationCreate(ap) if err != nil { fmt.Println("error creating new applicaiton,", err) return } fmt.Printf("Application created successfully:\n") fmt.Printf("ID: %s\n", ap.ID) fmt.Printf("Name: %s\n", ap.Name) fmt.Printf("Secret: %s\n\n", ap.Secret) // Create the bot account under the application we just created // If ConvToken is set, then this will convert an existing account // into a bot account under the application we just created. bot, err := dg.ApplicationBotCreate(ap.ID, ConvToken) if err != nil { fmt.Println("error creating bot account,", err) return } fmt.Printf("Bot account created successfully.\n") fmt.Printf("ID: %s\n", bot.ID) fmt.Printf("Username: %s\n", bot.Username) fmt.Printf("Token: %s\n\n", bot.Token) fmt.Println("Please save the above posted info in a secure place.") fmt.Println("You will need that information to login with your bot account.") return }