package config import ( "os" "path" "runtime" ) type FileConfig struct { Path string Name string Type string } func GetDefaultConfigPath() string { var filePath string switch os_name := runtime.GOOS; os_name { case "windows": appData := os.Getenv("APPDATA") filePath = path.Join(appData, "hudly", ".conf") case "darwin": homePath := os.Getenv("HOME") filePath = path.Join(homePath, "Library", "Application Support", "hudly", ".conf") case "linux": homePath := os.Getenv("HOME") filePath = path.Join(homePath, ".config", "hudly", ".conf") default: panic("unknown operating system") } return filePath } type Config struct { ConfigVersion int PlayerName string PlayerUUID string AltNames []string AltUUIDs []string AppFeaturesConfig AppFeaturesConfig } type AppFeaturesConfig struct { CheckGuildChat bool CheckOfficerChat bool CheckPartyChat bool CheckPartyList bool CheckLobbyMessages bool CheckQueueMessages bool CheckInGameMessages bool } func GetDefaultConfig() *Config { return &Config{ ConfigVersion: 1, PlayerName: "", PlayerUUID: "", AltNames: []string{}, AltUUIDs: []string{}, AppFeaturesConfig: AppFeaturesConfig{ CheckGuildChat: true, CheckOfficerChat: false, CheckPartyChat: true, CheckPartyList: true, CheckLobbyMessages: false, CheckQueueMessages: true, CheckInGameMessages: true, }, } }