mirror of
https://github.com/diamondburned/cchat-discord.git
synced 2025-03-24 10:59:19 +00:00
Fixed several bugs related to channel orders and message edits
This commit is contained in:
parent
1e137df6de
commit
5b88b577fb
|
@ -254,7 +254,7 @@ func (ch *Channel) JoinServer(ctx context.Context, ct cchat.MessagesContainer) (
|
|||
ch.session.AddHandler(func(m *gateway.MessageUpdateEvent) {
|
||||
// If the updated content is empty. TODO: add embed support.
|
||||
if m.ChannelID == ch.id && m.Content != "" {
|
||||
ct.UpdateMessage(NewMessageUpdateContent(m.Message))
|
||||
ct.UpdateMessage(NewMessageUpdateContent(m.Message, ch.session))
|
||||
}
|
||||
}),
|
||||
ch.session.AddHandler(func(m *gateway.MessageDeleteEvent) {
|
||||
|
|
8
guild.go
8
guild.go
|
@ -158,10 +158,16 @@ func (g *Guild) Servers(container cchat.ServersContainer) error {
|
|||
// Only get top-level channels (those with category ID being null).
|
||||
var toplevels = filterAccessible(g.session, filterCategory(c, discord.NullSnowflake))
|
||||
|
||||
sort.Slice(toplevels, func(i, j int) bool {
|
||||
// Sort so that positions are correct.
|
||||
sort.SliceStable(toplevels, func(i, j int) bool {
|
||||
return toplevels[i].Position < toplevels[j].Position
|
||||
})
|
||||
|
||||
// Sort so that channels are before categories.
|
||||
sort.SliceStable(toplevels, func(i, _ int) bool {
|
||||
return toplevels[i].Type != discord.GuildCategory
|
||||
})
|
||||
|
||||
var chs = make([]cchat.Server, 0, len(toplevels))
|
||||
|
||||
for _, ch := range toplevels {
|
||||
|
|
13
message.go
13
message.go
|
@ -121,10 +121,19 @@ type Message struct {
|
|||
mentioned bool
|
||||
}
|
||||
|
||||
func NewMessageUpdateContent(msg discord.Message) Message {
|
||||
func NewMessageUpdateContent(msg discord.Message, s *Session) Message {
|
||||
// Check if content is empty.
|
||||
if msg.Content == "" {
|
||||
// Then grab the content from the state.
|
||||
m, err := s.Store.Message(msg.ChannelID, msg.ID)
|
||||
if err == nil {
|
||||
msg.Content = m.Content
|
||||
}
|
||||
}
|
||||
|
||||
return Message{
|
||||
messageHeader: newHeader(msg),
|
||||
content: text.Rich{Content: msg.Content},
|
||||
content: segments.ParseMessage(&msg, s.Store),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue