From a46d28583a43f5f9b55294c5fc44eaf228d95cd3 Mon Sep 17 00:00:00 2001 From: riku6460 <17585784+riku6460@users.noreply.github.com> Date: Wed, 21 Feb 2024 07:17:18 +0900 Subject: [PATCH] Fix json parse for >=1.20.3 https://minecraft.wiki/w/Java_Edition_1.20.3 --- database/server.go | 8 ++++---- server/grpc.go | 9 ++++++++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/database/server.go b/database/server.go index 36d779f..d7c6b06 100644 --- a/database/server.go +++ b/database/server.go @@ -30,10 +30,10 @@ type Lockdown struct { type PingResponse struct { Online bool - Version VersionData `json:"version"` - Players PlayersData `json:"players"` - Description map[string]string `json:"description"` - Favicon string `json:"favicon"` + Version VersionData `json:"version"` + Players PlayersData `json:"players"` + Description interface{} `json:"description"` + Favicon string `json:"favicon"` } type VersionData struct { diff --git a/server/grpc.go b/server/grpc.go index ad9a2c5..0b46280 100644 --- a/server/grpc.go +++ b/server/grpc.go @@ -220,6 +220,13 @@ func (s *grpcServer) Lockdown_PBtoDB(pbEntry *pb.Lockdown) *database.Lockdown { } func (s *grpcServer) Status_DBtoPB(dbEntry database.PingResponse) *pb.ServerStatus { + var description string + if str, ok := dbEntry.Description.(string); ok { + description = str + } else if m, ok := dbEntry.Description.(map[string]string); ok { + description = m["text"] + } + return &pb.ServerStatus{ Online: dbEntry.Online, Version: &pb.ServerStatus_Version{ @@ -230,7 +237,7 @@ func (s *grpcServer) Status_DBtoPB(dbEntry database.PingResponse) *pb.ServerStat Max: int32(dbEntry.Players.Max), Online: int32(dbEntry.Players.Online), }, - Description: dbEntry.Description["text"], + Description: description, Favicon: dbEntry.Favicon, } }