summaryrefslogtreecommitdiff
path: root/internal/packet
diff options
context:
space:
mode:
authorKyren223 <ulmliad223@gmail.com>2024-10-16 16:10:26 +0300
committerKyren223 <ulmliad223@gmail.com>2024-10-16 16:10:26 +0300
commitc35f2705dcebfae66ba293371332ab5867e703da (patch)
tree9aeb2edc5e6dbd2ff2cc16783f27c095054e9d24 /internal/packet
parentcf105501c7eafb6e08e46d9674de61e3e849a45a (diff)
feat: basic messaging between client and server
Diffstat (limited to 'internal/packet')
-rw-r--r--internal/packet/messages.go29
-rw-r--r--internal/packet/packet.go11
2 files changed, 39 insertions, 1 deletions
diff --git a/internal/packet/messages.go b/internal/packet/messages.go
index f8390f8..b1a6598 100644
--- a/internal/packet/messages.go
+++ b/internal/packet/messages.go
@@ -1,5 +1,9 @@
package packet
+import (
+ "github.com/kyren223/eko/internal/data"
+)
+
type EkoMessage struct {
Message string `msgpack:"message"`
}
@@ -15,3 +19,28 @@ type ErrorMessage struct {
func (m *ErrorMessage) Type() PacketType {
return TypeError
}
+
+type GetMessagesMessage struct {
+ Since *int64
+ UpTo *int64
+}
+
+func (m *GetMessagesMessage) Type() PacketType {
+ return TypeGetMessages
+}
+
+type SendMessageMessage struct {
+ Content string
+}
+
+func (m *SendMessageMessage) Type() PacketType {
+ return TypeSendMessage
+}
+
+type MessagesMessage struct {
+ Messages []data.Message
+}
+
+func (m *MessagesMessage) Type() PacketType {
+ return TypeMessages
+}
diff --git a/internal/packet/packet.go b/internal/packet/packet.go
index 068a8f3..3b49249 100644
--- a/internal/packet/packet.go
+++ b/internal/packet/packet.go
@@ -52,6 +52,12 @@ func (t PacketType) String() string {
return "PacketTypeEko"
case TypeError:
return "PacketTypeError"
+ case TypeGetMessages:
+ return "PacketTypeGetMessages"
+ case TypeSendMessage:
+ return "PacketTypeSendMessage"
+ case TypeMessages:
+ return "PacketTypeMessages"
default:
return fmt.Sprintf("PacketTypeInvalid(%v)", byte(t))
}
@@ -59,7 +65,7 @@ func (t PacketType) String() string {
func (e PacketType) IsSupported() bool {
switch e {
- case TypeEko, TypeError:
+ case TypeEko, TypeError, TypeGetMessages, TypeSendMessage, TypeMessages:
return true
default:
return false
@@ -69,6 +75,9 @@ func (e PacketType) IsSupported() bool {
const (
TypeEko PacketType = iota
TypeError
+ TypeGetMessages
+ TypeSendMessage
+ TypeMessages
)
const (