package config import ( "os" "gopkg.in/yaml.v3" ) type Config struct { Bot struct { Token string `yaml:"token"` GuildID string `yaml:"guild_id"` AdminRoleID string `yaml:"admin_role_id"` PartyFinderChannelID string `yaml:"party_finder_channel_id"` RoleReactChannelID string `yaml:"role_react_channel_id"` RosterChannelID string `yaml:"roster_channel_id"` ScrapeIntervalMin int `yaml:"scrape_interval_minutes"` } `yaml:"bot"` Database struct { Path string `yaml:"path"` } `yaml:"database"` EmojiIDs map[string]int64 `yaml:"emoji_ids"` RoleEmojiMap map[string][]string `yaml:"role_emoji_map"` GameRoleToDiscordRole map[string]int64 `yaml:"game_role_to_discord_role"` GameContentToDiscordRole map[string]int64 `yaml:"game_content_to_discord_role"` DiscordMsgToDiscordRole map[string]int64 `yaml:"discord_message_to_discord_role"` ActivityIDToLabel map[string]string `yaml:"activity_id_to_label"` } func Load(path string) (*Config, error) { data, err := os.ReadFile(path) if err != nil { return nil, err } var cfg Config if err := yaml.Unmarshal(data, &cfg); err != nil { return nil, err } return &cfg, nil }