Inline event handlers
This commit is contained in:
parent
69f7ac594c
commit
e78dfee9c8
1 changed files with 18 additions and 24 deletions
42
discordo.go
42
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 {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue