package docker import ( "fmt" "log" "strings" ) type Port struct { In string Out string } type ServerType int const ( FORGE ServerType = iota FABRIC NEOFORGE VANILLA ) func (p Port) String() string { return fmt.Sprintf("%s:%s", p.In, p.Out) } func (t ServerType) String() string { switch t { case FORGE: return "FORGE" case NEOFORGE: return "NEOFORGE" case VANILLA: return "VANILLA" } log.Panicln("unreachable") return "" } func PortFromString(port string) Port { parts := strings.Split(port, ":") return Port{ In: parts[0], Out: parts[1], } } func PortsFromStrings(ports []string) (r []Port) { for _, port := range ports { r = append(r, PortFromString(port)) } return } func TypeFromString(in string) ServerType { switch in { case "FORGE": return FORGE case "NEOFORGE": return NEOFORGE case "VANILLA": return VANILLA default: log.Fatalf("unknown server type \"%s\"", in) } return VANILLA }