kleincordBot/main.go
2024-05-04 13:23:57 +02:00

62 lines
1.3 KiB
Go

package main
import (
"flag"
"github.com/bwmarrin/discordgo"
"github.com/joho/godotenv"
"kleincordBot/commands"
"kleincordBot/handlers"
"kleincordBot/routers"
"kleincordBot/services"
"log"
"os"
"os/signal"
"time"
)
var GuildID = flag.String("guild", "", "Test guild ID. If not passed - bot registers commands globally")
func main() {
flag.Parse()
err := godotenv.Load()
if err != nil {
log.Fatalf(".env not found: %v", err)
return
}
handlers.LogChannelID = os.Getenv("LOG_CHANNEL_ID")
services.InitServers()
discord, err := discordgo.New("Bot " + os.Getenv("BOT_TOKEN"))
if err != nil {
log.Fatalf(err.Error())
}
discord.AddHandler(routers.MessageRouter)
discord.AddHandler(routers.CommandRouter)
err = discord.Open()
if err != nil {
log.Fatalf("Cannot open the session: %v", err)
} else {
discord.ChannelMessageSendEmbed(
handlers.LogChannelID,
&discordgo.MessageEmbed{
Title: "started " + os.Getenv("ENVIRONMENT"),
Timestamp: time.Now().Format(time.RFC3339),
})
}
_, err = discord.ApplicationCommandBulkOverwrite(discord.State.User.ID, *GuildID, commands.Commands)
if err != nil {
print(err.Error())
}
defer discord.Close()
stop := make(chan os.Signal, 1)
signal.Notify(stop, os.Interrupt)
log.Println("Press Ctrl+C to exit")
<-stop
}