package main import ( "flag" "github.com/bwmarrin/discordgo" "github.com/joho/godotenv" "log" "os" "os/signal" ) var ( GuildID = flag.String("guild", "", "Test guild ID. If not passed - bot registers commands globally") discord *discordgo.Session ) func main() { flag.Parse() err := godotenv.Load() if err != nil { log.Fatalf(".env not found: %v", err) return } initServers() discord, err := discordgo.New("Bot " + os.Getenv("BOT_TOKEN")) if err != nil { log.Fatalf(err.Error()) } discord.AddHandler(MessageHandler) discord.AddHandler(CommandHandler) err = discord.Open() if err != nil { log.Fatalf("Cannot open the session: %v", err) } _, err = discord.ApplicationCommandBulkOverwrite(discord.State.User.ID, *GuildID, 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 }