forked from pothtonswer/discordmuffin
Added AppMaker example
This commit is contained in:
parent
b2111317bc
commit
6ff8c4b218
2 changed files with 158 additions and 0 deletions
58
examples/appmaker/README.md
Normal file
58
examples/appmaker/README.md
Normal file
|
@ -0,0 +1,58 @@
|
|||
<img align="right" src="http://bwmarrin.github.io/discordgo/img/discordgo.png">
|
||||
AppMaker Example
|
||||
====
|
||||
|
||||
This example demonstrates how to utilize DiscordGo to create Bot Applications
|
||||
|
||||
You can create a new bot account or convert an existing normal user account into
|
||||
a bot account with this tool. You can also view the list of applications you
|
||||
have on your account and delete applications.
|
||||
|
||||
### Build
|
||||
|
||||
This assumes you already have a working Go environment setup and that
|
||||
DiscordGo is correctly installed on your system.
|
||||
|
||||
```sh
|
||||
go build
|
||||
```
|
||||
|
||||
### Usage
|
||||
|
||||
```
|
||||
Usage of ./appmaker:
|
||||
-a string
|
||||
App/Bot Name
|
||||
-c string
|
||||
Token of account to convert.
|
||||
-d string
|
||||
Application ID to delete
|
||||
-e string
|
||||
Account Email
|
||||
-l List Applications Only
|
||||
-p string
|
||||
Account Password
|
||||
-t string
|
||||
Account Token
|
||||
```
|
||||
|
||||
* Account Email and Password or Token are required. The account provided with
|
||||
these fields will be the "owner" of any bot applications created.
|
||||
|
||||
* If you provide the **-l** flag than appmaker will only display a list of
|
||||
applications on provided account.
|
||||
|
||||
* If you provide a **-d** flag with a valid application ID then that application
|
||||
will be delted.
|
||||
|
||||
* If you provide a **-c** flag with a valid user token then than user account
|
||||
will be converted into a Bot account instead of creating a new Bot account for
|
||||
an application.
|
||||
|
||||
|
||||
Below example will create a new Bot Application under the given Email/Password
|
||||
account. The Bot will be named **DiscordGoRocks**
|
||||
|
||||
```sh
|
||||
./appmaker -e Email -p Password -a DiscordGoRocks
|
||||
```
|
100
examples/appmaker/main.go
Normal file
100
examples/appmaker/main.go
Normal file
|
@ -0,0 +1,100 @@
|
|||
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
|
||||
}
|
Loading…
Reference in a new issue