Skip to content

Commit 1f78da9

Browse files
committed
fix: nil pointer dereference in session chat LastSeenMessages handling
- Fixed condition from '== nil' to '!= nil' to prevent nil dereference panic - Changed to use evt.Message() instead of packet.Message when message is modified - Added LastSeenMessages to builder when creating new packet for modified messages - Removed unnecessary unsigned check to match Velocity's behavior
1 parent 63c9ea6 commit 1f78da9

1 file changed

Lines changed: 8 additions & 4 deletions

File tree

pkg/edition/java/proxy/handle_chat.go

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,18 @@ func (c *chatHandler) handleSessionChat(packet *chat.SessionPlayerChat, unsigned
9191
if packet.Signed && c.invalidChange(c.log, c.player) {
9292
return nil
9393
}
94-
return asFuture((&chat.Builder{
94+
builder := &chat.Builder{
9595
Protocol: server.Protocol(),
96-
Message: packet.Message,
96+
Message: evt.Message(),
9797
Sender: c.player.ID(),
9898
Timestamp: packet.Timestamp,
99-
}).ToServer())
99+
}
100+
if newLastSeenMessages != nil {
101+
builder.LastSeenMessages = *newLastSeenMessages
102+
}
103+
return asFuture(builder.ToServer())
100104
}
101-
if newLastSeenMessages == nil && !unsigned {
105+
if newLastSeenMessages != nil {
102106
packet.LastSeenMessages = *newLastSeenMessages
103107
}
104108
return asFuture(packet)

0 commit comments

Comments
 (0)