Make SRV record always visible, fix SRV lookup

This commit is contained in:
Jacob Gunther 2023-12-30 13:28:06 -06:00
parent 9af926633c
commit c13803d984
No known key found for this signature in database
GPG Key ID: 9E6F3F4BF45EC433

View File

@ -32,19 +32,19 @@ type BaseStatus struct {
// JavaStatusResponse is the combined response of the root response and the Java Edition status response. // JavaStatusResponse is the combined response of the root response and the Java Edition status response.
type JavaStatusResponse struct { type JavaStatusResponse struct {
BaseStatus BaseStatus
SRVRecord *SRVRecord `json:"srv_record"`
*JavaStatus *JavaStatus
} }
// JavaStatus is the status response properties for Java Edition. // JavaStatus is the status response properties for Java Edition.
type JavaStatus struct { type JavaStatus struct {
Version *JavaVersion `json:"version"` Version *JavaVersion `json:"version"`
Players JavaPlayers `json:"players"` Players JavaPlayers `json:"players"`
MOTD MOTD `json:"motd"` MOTD MOTD `json:"motd"`
Icon *string `json:"icon"` Icon *string `json:"icon"`
Mods []Mod `json:"mods"` Mods []Mod `json:"mods"`
Software *string `json:"software"` Software *string `json:"software"`
Plugins []Plugin `json:"plugins"` Plugins []Plugin `json:"plugins"`
SRVRecord *SRVRecord `json:"srv_record"`
} }
// BedrockStatusResponse is the combined response of the root response and the Bedrock Edition status response. // BedrockStatusResponse is the combined response of the root response and the Bedrock Edition status response.
@ -295,7 +295,7 @@ func FetchJavaStatus(host string, port uint16, opts *StatusOptions) JavaStatusRe
srvRecord, err = mcutil.LookupSRV("tcp", host) srvRecord, err = mcutil.LookupSRV("tcp", host)
if err == nil && srvRecord != nil { if err == nil && srvRecord != nil {
connectionHostname = srvRecord.Target connectionHostname = strings.Trim(srvRecord.Target, ".")
connectionPort = srvRecord.Port connectionPort = srvRecord.Port
} }
} }
@ -588,7 +588,7 @@ func BuildJavaResponse(host string, port uint16, status *response.JavaStatus, le
} }
} }
if result.JavaStatus != nil && srvRecord != nil { if srvRecord != nil {
result.SRVRecord = &SRVRecord{ result.SRVRecord = &SRVRecord{
Host: strings.Trim(srvRecord.Target, "."), Host: strings.Trim(srvRecord.Target, "."),
Port: srvRecord.Port, Port: srvRecord.Port,