From c77ac77e78268bc2f4265a872b213d4300b3eb66 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Sun, 2 Feb 2025 19:23:50 +0200 Subject: Added support for offline notifications where the server calculates them and sends the info to the client when it connects --- internal/packet/packet.go | 8 ++++++++ internal/packet/types.go | 18 ++++++++++++++++++ 2 files changed, 26 insertions(+) (limited to 'internal/packet') diff --git a/internal/packet/packet.go b/internal/packet/packet.go index d107fb7..72ff4b9 100644 --- a/internal/packet/packet.go +++ b/internal/packet/packet.go @@ -80,6 +80,9 @@ const ( PacketTrustUser PacketTrustInfo + PacketGetNotifications + PacketNotificationsInfo + PacketMax ) @@ -245,6 +248,11 @@ func (p Packet) DecodedPayload() (Payload, error) { case PacketTrustInfo: payload = &TrustInfo{} + case PacketGetNotifications: + payload = &GetNotifications{} + case PacketNotificationsInfo: + payload = &NotificationsInfo{} + default: assert.Never("unexpected packet.PacketType", "type", p.Type()) } diff --git a/internal/packet/types.go b/internal/packet/types.go index 6d0b1dd..27fd028 100644 --- a/internal/packet/types.go +++ b/internal/packet/types.go @@ -233,3 +233,21 @@ type GetBannedMembers struct { func (m *GetBannedMembers) Type() PacketType { return PacketGetBannedMembers } + +type GetNotifications struct { + Source []snowflake.ID + LastReadId []snowflake.ID +} + +func (m *GetNotifications) Type() PacketType { + return PacketGetNotifications +} + +type NotificationsInfo struct { + Source []snowflake.ID + Pings []*int64 +} + +func (m *NotificationsInfo) Type() PacketType { + return PacketNotificationsInfo +} -- cgit v1.3.1