GoBot/main.go
2022-08-29 08:24:30 -04:00

78 lines
1.3 KiB
Go

package main
import (
"fmt"
"github.com/bwmarrin/discordgo"
"github.com/spf13/viper"
"os"
)
var BotId string
func main() {
viper := viper.New()
viper.SetConfigFile("./config.yml")
viper.ReadInConfig()
fmt.Println(viper.GetString("bot.prefix"))
fmt.Println(viper.GetString("bot.token"))
}
func mainf() {
fmt.Println("Bot is starting...")
fmt.Println("Loading config...")
data, err := os.ReadFile("./config.yml")
checkErr(err)
var config Config
err = config.Parse(data)
checkErr(err)
fmt.Printf("%+v\n", config)
fmt.Println("Config loaded")
discord, err := discordgo.New("Bot " + config.BotToken)
checkErr(err)
user, err := discord.User("@me")
checkErr(err)
BotId = user.ID
discord.AddHandler(messageHandler)
err = discord.Open()
checkErr(err)
fmt.Println("Bot is running!")
<-make(chan struct{})
return
}
func messageHandler(session *discordgo.Session, message *discordgo.MessageCreate) {
if message.Author.ID == BotId {
return
}
switch message.Content {
case "go$ping":
_, _ = session.ChannelMessageSendReply(message.ChannelID, "pong!", message.Reference())
case "go$stop", "go$exit":
{
_, _ = session.ChannelMessageSend(message.ChannelID, "Shutting down...")
os.Exit(0)
}
}
fmt.Println(message.Content)
}
func checkErr(err error) {
if err != nil {
fmt.Println(err.Error())
os.Exit(1)
}
}