TerraOceanPlugin/GoBot/main.go

67 lines
1.2 KiB
Go

package main
import (
"fmt"
"io/ioutil"
"os"
"os/signal"
"strings"
"syscall"
"github.com/bwmarrin/discordgo"
)
2019-10-10 12:35:53 +07:00
const voteSuggestionChannel = "627164561644191744"
func main() {
token, _ := ioutil.ReadFile("token.txt")
dg, err := discordgo.New("Bot " + strings.TrimSpace(string(token)))
if err != nil {
panic(err)
}
2019-10-10 13:59:00 +07:00
dg.AddHandler(messageCreate)
dg.AddHandler(checkForVote)
2019-10-11 14:29:07 +07:00
dg.AddHandler(checkForTrustUpdate)
2019-10-12 06:40:46 +07:00
dg.AddHandler(checkForInvite)
2019-10-10 13:59:00 +07:00
if err := dg.Open(); err != nil {
panic(err)
}
fmt.Println("Bot is now running. Press CTRL-C to exit.")
2019-10-10 13:59:00 +07:00
go listenToVoteFinishes(dg)
sc := make(chan os.Signal, 1)
signal.Notify(sc, syscall.SIGINT, syscall.SIGTERM, os.Interrupt, os.Kill)
<-sc
dg.Close()
}
func messageCreate(s *discordgo.Session, m *discordgo.MessageCreate) {
if m.Author.ID == s.State.User.ID {
return
}
2019-10-10 12:35:53 +07:00
if m.ChannelID == voteSuggestionChannel {
voteSuggestion(s, m)
return
}
command := strings.Split(m.Content, " ")
switch command[0] {
case "!sendas":
sendAs(s, m, command)
case "!editas":
editAs(s, m, command)
case "!peektrust":
viewTrustLevel(s, m, command)
case "!invite":
createInvite(s, m, command)
2019-10-12 06:40:46 +07:00
case "!validate":
checkUseInvite(s, m, command)
2019-10-11 14:29:07 +07:00
case "!trust":
changeTrust(s, m, command)
}
}