summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorcitrons <citrons@mondecitronne.com>2025-06-04 12:12:13 -0500
committercitrons <citrons@mondecitronne.com>2025-06-07 16:02:18 -0500
commitb0fd9a1c7848343ef378b772eb76a0e99747260c (patch)
tree05093ccc0bda8ba4f1286b738ab67a6b1bccfd61 /server
parent035344054768562bee7db12e02e3bec1c8409210 (diff)
channel list
Diffstat (limited to 'server')
-rw-r--r--server/object/object.go1
-rw-r--r--server/server/command.go20
2 files changed, 20 insertions, 1 deletions
diff --git a/server/object/object.go b/server/object/object.go
index d18507c..bae274a 100644
--- a/server/object/object.go
+++ b/server/object/object.go
@@ -7,6 +7,7 @@ import (
type Object interface {
SendRequest(session.Request)
+ GetInfo() proto.Object
}
type World struct {
diff --git a/server/server/command.go b/server/server/command.go
index 603b033..306a445 100644
--- a/server/server/command.go
+++ b/server/server/command.go
@@ -111,6 +111,22 @@ func (s *server) SendRequest(r session.Request) {
r.ReplyInvalid()
}
+ case "channels":
+ if r.From.UserId == "" {
+ r.Reply(proto.NewCmd("channels", "", ))
+ return
+ }
+ if len(r.Cmd.Args) != 0 {
+ r.ReplyInvalid()
+ return
+ }
+ u := s.world.GetObject(r.From.UserId).(*user.User)
+ var channels []proto.Object
+ for c := range u.Channels {
+ channels = append(channels, s.world.GetObject(c).GetInfo())
+ }
+ r.Reply(proto.NewCmd("channels", "", channels...))
+
case "meow":
r.Reply(proto.NewCmd("meow", ""))
@@ -119,4 +135,6 @@ func (s *server) SendRequest(r session.Request) {
}
}
-
+func (s *server) GetInfo() proto.Object {
+ return proto.Object {}
+}