Skip to content

Commit 6b26d3f

Browse files
authored
Merge pull request #277 from Arkaeriit/quick-fix-plugins
Fix plugings messages with no sender.
2 parents ace46c2 + 7a567d2 commit 6b26d3f

2 files changed

Lines changed: 18 additions & 8 deletions

File tree

main.go

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -702,15 +702,10 @@ func (u *User) writelnWithImageCache(msg Message, cache map[string]image.Image)
702702
case PrivateMessageSend:
703703
msg.text = strings.TrimSpace(mdRender(msg.text, lenString(msg.senderName), u.winWidth, cache))
704704
msg.text = msg.senderName + " <- " + msg.text
705-
if !thisUserIsDMSender {
706-
msg.text += "\a"
707-
}
708705
case PrivateMessageReceive:
709706
msg.text = strings.TrimSpace(mdRender(msg.text, lenString(msg.senderName), u.winWidth, cache))
710707
msg.text = msg.senderName + " -> " + msg.text
711-
if !thisUserIsDMSender {
712-
msg.text += "\a"
713-
}
708+
msg.text += "\a"
714709
case DefaultMessage:
715710
msg.text = strings.TrimSpace(mdRender(msg.text, lenString(msg.senderName)+2, u.winWidth, cache))
716711
msg.text = msg.senderName + ": " + msg.text

rpc.go

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,13 +191,28 @@ func (s *pluginServer) SendMessage(ctx context.Context, msg *pb.Message) (*pb.Me
191191
if !success {
192192
return nil, status.Error(codes.NotFound, "Could not find user "+*msg.EphemeralTo)
193193
}
194-
u.writeln(NewPrivateMessage(msg.GetFrom(), msg.Msg, false))
194+
var localMsg Message
195+
if msg.GetFrom() == "" {
196+
localMsg = NewNoSenderMessage(msg.Msg)
197+
} else {
198+
localMsg = NewPrivateMessage(msg.GetFrom(), msg.Msg, false)
199+
}
200+
localMsg = localMsg.dontSendToPlugin()
201+
u.writeln(localMsg)
195202
} else {
196203
r := Rooms[msg.Room]
197204
if r == nil {
198205
return nil, status.Error(codes.InvalidArgument, "Room does not exist")
199206
}
200-
r.broadcast(NewMessage(msg.GetFrom(), msg.Msg).dontSendToPlugin())
207+
// The plugin API doesn't export a function to send messages with no sender, so we must add support for it here.
208+
var localMsg Message
209+
if msg.GetFrom() == "" {
210+
localMsg = NewNoSenderMessage(msg.Msg)
211+
} else {
212+
localMsg = NewMessage(msg.GetFrom(), msg.Msg)
213+
}
214+
localMsg = localMsg.dontSendToPlugin()
215+
r.broadcast(localMsg)
201216
}
202217
return &pb.MessageRes{}, nil
203218
}

0 commit comments

Comments
 (0)