From ab83e64f8468d5ee51b557565a0f878aabc40366 Mon Sep 17 00:00:00 2001 From: wish Date: Sat, 8 Jul 2023 00:35:15 +1000 Subject: [PATCH] fix limited friends & clanmates amount --- server/signserver/dbutils.go | 8 +------- server/signserver/dsgn_resp.go | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/server/signserver/dbutils.go b/server/signserver/dbutils.go index 3d7e34318..2720e07cd 100644 --- a/server/signserver/dbutils.go +++ b/server/signserver/dbutils.go @@ -131,9 +131,6 @@ func (s *Server) getFriendsForCharacters(chars []character) []members { } friends = append(friends, charFriends...) } - if len(friends) > 255 { // Uint8 - friends = friends[:255] - } return friends } @@ -153,15 +150,12 @@ func (s *Server) getGuildmatesForCharacters(chars []character) []members { if err != nil { continue } - for i, _ := range charGuildmates { + for i := range charGuildmates { charGuildmates[i].CID = char.ID } guildmates = append(guildmates, charGuildmates...) } } - if len(guildmates) > 255 { // Uint8 - guildmates = guildmates[:255] - } return guildmates } diff --git a/server/signserver/dsgn_resp.go b/server/signserver/dsgn_resp.go index 65874b683..21a9aa3c2 100644 --- a/server/signserver/dsgn_resp.go +++ b/server/signserver/dsgn_resp.go @@ -89,7 +89,12 @@ func (s *Session) makeSignResponse(uid int) []byte { if len(friends) == 0 { bf.WriteUint8(0) } else { - bf.WriteUint8(uint8(len(friends))) + if len(friends) > 255 { + bf.WriteUint8(255) + bf.WriteUint16(uint16(len(friends))) + } else { + bf.WriteUint8(uint8(len(friends))) + } for _, friend := range friends { bf.WriteUint32(friend.CID) bf.WriteUint32(friend.ID) @@ -101,7 +106,12 @@ func (s *Session) makeSignResponse(uid int) []byte { if len(guildmates) == 0 { bf.WriteUint8(0) } else { - bf.WriteUint8(uint8(len(guildmates))) + if len(guildmates) > 255 { + bf.WriteUint8(255) + bf.WriteUint16(uint16(len(guildmates))) + } else { + bf.WriteUint8(uint8(len(guildmates))) + } for _, guildmate := range guildmates { bf.WriteUint32(guildmate.CID) bf.WriteUint32(guildmate.ID)