42 lines
816 B
Go
42 lines
816 B
Go
package discord
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"os/signal"
|
|
"strings"
|
|
"sync"
|
|
"syscall"
|
|
|
|
"github.com/bwmarrin/discordgo"
|
|
|
|
"TerraOceanBot/discord/modules"
|
|
)
|
|
|
|
func StartBot(token string, wg *sync.WaitGroup) {
|
|
defer wg.Done()
|
|
dg, err := discordgo.New("Bot " + strings.TrimSpace(token))
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
dg.AddHandler(ProcessCommand)
|
|
dg.AddHandler(ProcessVote)
|
|
dg.AddHandler(modules.CheckForVote)
|
|
dg.AddHandler(modules.CheckForTrustUpdate)
|
|
dg.AddHandler(modules.CheckForInvite)
|
|
|
|
if err := dg.Open(); err != nil {
|
|
panic(err)
|
|
}
|
|
|
|
fmt.Println("Bot is now running. Press CTRL-C to exit.")
|
|
go modules.ListenToVoteFinishes(dg)
|
|
sc := make(chan os.Signal, 1)
|
|
signal.Notify(sc, syscall.SIGINT, syscall.SIGTERM, os.Interrupt, os.Kill)
|
|
<-sc
|
|
|
|
dg.Close()
|
|
fmt.Println("Discordgo exited successfully.")
|
|
}
|