diff --git a/discordo.go b/discordo.go index 53b99f4..e019674 100644 --- a/discordo.go +++ b/discordo.go @@ -134,9 +134,19 @@ func newSession(email string, password string, token string) *session.Session { discordState = state.NewFromSession(sess, defaultstore.New()) - sess.AddHandler(onReady) - sess.AddHandler(onGuildCreate) - sess.AddHandler(onMessageCreate) + sess.AddHandler(func(r *gateway.ReadyEvent) { + for i := range r.Guilds { + guildsDropDown.AddOption(r.Guilds[i].Name, nil) + } + }) + sess.AddHandler(func(g *gateway.GuildCreateEvent) { + guildsDropDown.AddOption(g.Name, nil) + }) + sess.AddHandler(func(m *gateway.MessageCreateEvent) { + if currentChannel.ID == m.ChannelID { + util.WriteMessage(messagesTextView, discordState, m.Message) + } + }) if err = sess.Open(context.Background()); err != nil { panic(err) } @@ -144,35 +154,19 @@ func newSession(email string, password string, token string) *session.Session { return sess } -func onGuildCreate(guild *gateway.GuildCreateEvent) { - guildsDropDown.AddOption(guild.Name, nil) -} - -func onReady(r *gateway.ReadyEvent) { - for i := range r.Guilds { - guildsDropDown.AddOption(r.Guilds[i].Name, nil) - } -} - -func onMessageCreate(m *gateway.MessageCreateEvent) { - if currentChannel.ID == m.ChannelID { - util.WriteMessage(messagesTextView, discordState, m.Message) - } -} - func onGuildsDropDownSelected(_ string, i int) { - messagesTextView.SetTitle("") + channelsTreeView.SetTitle("Channels") channelsTreeNode.ClearChildren() - messagesTextView.Clear() + messagesTextView. + Clear(). + SetTitle("") + app.SetFocus(channelsTreeView) if messageInputField != nil { mainFlex.RemoveItem(messageInputField) messageInputField = nil } - channelsTreeView.SetTitle("Channels") - app.SetFocus(channelsTreeView) - currentGuild = discordState.Ready().Guilds[i].Guild channels, _ := discordState.Cabinet.Channels(currentGuild.ID) sort.SliceStable(channels, func(i, j int) bool {