From ff3140a4089819489130a0908178a63eff20f708 Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Sun, 3 Nov 2024 19:33:30 +0200 Subject: feat: add username and timestamp to messages --- internal/packet/messages.go | 26 +++++++++++++++++++++----- internal/packet/packet.go | 20 +++++++++++--------- 2 files changed, 32 insertions(+), 14 deletions(-) (limited to 'internal/packet') diff --git a/internal/packet/messages.go b/internal/packet/messages.go index 04929cd..58d12e9 100644 --- a/internal/packet/messages.go +++ b/internal/packet/messages.go @@ -14,9 +14,9 @@ func (m *ErrorMessage) Type() PacketType { } type SendMessage struct { - ReceiverID *snowflake.ID + ReceiverID *snowflake.ID FrequencyID *snowflake.ID - Content string + Content string } func (m *SendMessage) Type() PacketType { @@ -41,11 +41,27 @@ func (m *Messages) Type() PacketType { type GetMessagesRange struct { FrequencyID *snowflake.ID - ReceiverID *snowflake.ID - From *int64 - To *int64 + ReceiverID *snowflake.ID + From *int64 + To *int64 } func (m *GetMessagesRange) Type() PacketType { return PacketGetMessageRange } + +type GetUserByID struct { + UserID snowflake.ID +} + +func (m *GetUserByID) Type() PacketType { + return PacketGetUserById +} + +type Users struct { + Users []data.User +} + +func (m *Users) Type() PacketType { + return PacketUsers +} diff --git a/internal/packet/packet.go b/internal/packet/packet.go index c7986cb..58e83b4 100644 --- a/internal/packet/packet.go +++ b/internal/packet/packet.go @@ -55,6 +55,8 @@ const ( PacketPushedMessages PacketGetMessageRange PacketMessages + PacketGetUserById + PacketUsers ) func (t PacketType) String() string { @@ -69,29 +71,25 @@ func (t PacketType) String() string { return "PacketGetMessageRange" case PacketMessages: return "PacketMessages" + case PacketGetUserById: + return "PacketGetUserById" + case PacketUsers: + return "PacketUsers" default: return fmt.Sprintf("PacketInvalidType(%v)", byte(t)) } } func (e PacketType) IsSupported() bool { - switch e { - case PacketError, PacketSendMessage, PacketPushedMessages, PacketGetMessageRange, PacketMessages: - return true - default: - return false - } + return e <= PacketUsers } // True for all packets that a server may push passively to the client. func (e PacketType) IsPush() bool { switch e { - case PacketError, PacketSendMessage, PacketGetMessageRange, PacketMessages: - return false case PacketPushedMessages: return true default: - assert.Never("should never happen") return false } } @@ -207,6 +205,10 @@ func (p Packet) DecodedPayload() (Payload, error) { payload = &GetMessagesRange{} case PacketMessages: payload = &Messages{} + case PacketGetUserById: + payload = &GetUserByID{} + case PacketUsers: + payload = &Users{} default: assert.Never("packet type of a packet struct must always be valid") } -- cgit v1.3.1