summaryrefslogtreecommitdiff
path: root/internal/packet
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2024-11-03 19:33:30 +0200
committerKyren223 <Kyren223@proton.me>2024-11-03 19:33:30 +0200
commitff3140a4089819489130a0908178a63eff20f708 (patch)
treedef568e1deca7461f814e55af7d9e09720e0b0ae /internal/packet
parenta637ea9c335c385985a23510a4174d837fb51faf (diff)
feat: add username and timestamp to messages
Diffstat (limited to 'internal/packet')
-rw-r--r--internal/packet/messages.go26
-rw-r--r--internal/packet/packet.go20
2 files changed, 32 insertions, 14 deletions
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")
}