From 7849c09443d58d3fcbaa2aefae9cc92109ddf8cf Mon Sep 17 00:00:00 2001 From: Skip R Date: Thu, 15 Jan 2026 15:53:15 -0800 Subject: [PATCH] connector: send bridge state updates on gateway events This also makes the account properly appear in client settings after provisioning. --- pkg/connector/client.go | 4 ---- pkg/connector/handlediscord.go | 11 +++++++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/pkg/connector/client.go b/pkg/connector/client.go index 0b0250b..fcd1806 100644 --- a/pkg/connector/client.go +++ b/pkg/connector/client.go @@ -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) { diff --git a/pkg/connector/handlediscord.go b/pkg/connector/handlediscord.go index 031fdc2..67227e4 100644 --- a/pkg/connector/handlediscord.go +++ b/pkg/connector/handlediscord.go @@ -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)).