From a30268a54a9e7248bdb278f89170ff976d940e26 Mon Sep 17 00:00:00 2001 From: wish Date: Wed, 2 Nov 2022 22:01:36 +1100 Subject: [PATCH] prevent invalid bitfield --- server/channelserver/handlers.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/server/channelserver/handlers.go b/server/channelserver/handlers.go index a464d92a6..47d3d6b4c 100644 --- a/server/channelserver/handlers.go +++ b/server/channelserver/handlers.go @@ -77,8 +77,10 @@ func updateRights(s *Session) { s.server.db.QueryRow("SELECT rights FROM users u INNER JOIN characters c ON u.id = c.user_id WHERE c.id = $1", s.charID).Scan(&rightsInt) s.courses = mhfpacket.GetCourseStruct(rightsInt) rights := []mhfpacket.ClientRight{{1, 0, 0}} + var netcafeBitSet bool for _, course := range s.courses { - if course.ID == 9 || course.ID == 26 { + if (course.ID == 9 || course.ID == 26) && !netcafeBitSet { + netcafeBitSet = true rightsInt += 0x40000000 // set netcafe bit rights = append(rights, mhfpacket.ClientRight{ID: 30}) }