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)).