connector: send bridge state updates on gateway events

This also makes the account properly appear in client settings after
provisioning.
This commit is contained in:
Skip R
2026-01-15 15:53:15 -08:00
parent 5b7a7a430c
commit 7849c09443
2 changed files with 11 additions and 4 deletions

View File

@@ -115,10 +115,6 @@ func (d *DiscordClient) Connect(ctx context.Context) {
if err := d.connect(ctx); err != nil {
log.Err(err).Msg("Couldn't connect to Discord")
}
// TODO(skip): Use event handler and send this in response to READY/RESUMED instead?
d.UserLogin.BridgeState.Send(status.BridgeState{
StateEvent: status.StateConnected,
})
}
func (cl *DiscordClient) handleDiscordEventSync(event any) {

View File

@@ -25,6 +25,7 @@ import (
"github.com/rs/zerolog"
"maunium.net/go/mautrix/bridgev2"
"maunium.net/go/mautrix/bridgev2/networkid"
"maunium.net/go/mautrix/bridgev2/status"
)
type DiscordEventMeta struct {
@@ -193,6 +194,16 @@ func (d *DiscordClient) handleDiscordEvent(rawEvt any) {
Logger()
switch evt := rawEvt.(type) {
case *discordgo.Ready:
log.Info().Msg("Received READY dispatch from discordgo")
d.UserLogin.BridgeState.Send(status.BridgeState{
StateEvent: status.StateConnected,
})
case *discordgo.Resumed:
log.Info().Msg("Received RESUMED dispatch from discordgo")
d.UserLogin.BridgeState.Send(status.BridgeState{
StateEvent: status.StateConnected,
})
case *discordgo.MessageCreate:
if evt.Author == nil {
log.Trace().Int("message_type", int(evt.Message.Type)).