Tons of works on dm's.

They mostly work including display names and avatars. However that's about all
they do right now.
This commit is contained in:
Gary Kramlich
2022-01-31 04:53:21 -06:00
parent f20d204dd7
commit c1bb55d3cf
11 changed files with 329 additions and 86 deletions

View File

@@ -68,6 +68,18 @@ func (b *Bridge) GetUserByMXID(userID id.UserID) *User {
return user
}
func (b *Bridge) GetUserByID(id string) *User {
b.usersLock.Lock()
defer b.usersLock.Unlock()
user, ok := b.usersByID[id]
if !ok {
return b.loadUser(b.db.User.GetByID(id), nil)
}
return user
}
func (b *Bridge) NewUser(dbUser *database.User) *User {
user := &User{
User: dbUser,
@@ -230,7 +242,7 @@ func (u *User) disconnectedHandler(s *discordgo.Session, d *discordgo.Disconnect
}
func (u *User) channelCreateHandler(s *discordgo.Session, c *discordgo.ChannelCreate) {
key := database.NewPortalKey(u.User.ID, c.ID)
key := database.NewPortalKey(c.ID, u.User.ID)
portal := u.bridge.GetPortalByID(key)
portal.Name = c.Name
@@ -254,7 +266,7 @@ func (u *User) channelPinsUpdateHandler(s *discordgo.Session, c *discordgo.Chann
}
func (u *User) channelUpdateHandler(s *discordgo.Session, c *discordgo.ChannelUpdate) {
key := database.NewPortalKey(u.User.ID, c.ID)
key := database.NewPortalKey(c.ID, u.User.ID)
portal := u.bridge.GetPortalByID(key)
portal.Name = c.Name
@@ -272,7 +284,7 @@ func (u *User) messageHandler(s *discordgo.Session, m *discordgo.MessageCreate)
return
}
key := database.NewPortalKey(u.User.ID, m.ChannelID)
key := database.NewPortalKey(m.ChannelID, u.User.ID)
portal := u.bridge.GetPortalByID(key)
msg := portalDiscordMessage{