package main import ( "fmt" "os" "gopkg.in/yaml.v3" ) type Config struct { BotToken string `yaml:"bot_token"` ChannelID string `yaml:"channel_id"` ServerHost string `yaml:"server_host"` ServerPort int `yaml:"server_port"` UpdateInterval int `yaml:"update_interval"` } func LoadConfig(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 } if cfg.BotToken == "" { return nil, fmt.Errorf("bot_token is required") } if cfg.ChannelID == "" { return nil, fmt.Errorf("channel_id is required") } if cfg.ServerHost == "" { return nil, fmt.Errorf("server_host is required") } if cfg.ServerPort == 0 { cfg.ServerPort = 25565 } if cfg.UpdateInterval == 0 { cfg.UpdateInterval = 15 } return &cfg, nil }