hudly/config/config.go

70 lines
1.4 KiB
Go
Raw Normal View History

2024-10-22 18:49:14 -06:00
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,
},
}
}