From 14c18b22868be203b301c0760449ca5a30804f6a Mon Sep 17 00:00:00 2001 From: Chris Rhodes Date: Sat, 2 Jan 2016 12:32:18 -0800 Subject: [PATCH] Add generic Channel method which is slower. --- state.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/state.go b/state.go index 69d3746..5b22480 100644 --- a/state.go +++ b/state.go @@ -245,3 +245,24 @@ func (s *State) PrivateChannel(channelID string) (*Channel, error) { return nil, errors.New("Channel not found.") } + +// Channel gets a channel by ID, it will look in all guilds an private channels. +func (s *State) Channel(channelID string) (*Channel, error) { + if s == nil { + return nil, nilError + } + + c, err := s.PrivateChannel(channelID) + if err == nil { + return c, nil + } + + for _, g := range s.Guilds { + c, err := s.GuildChannel(g.ID, channelID) + if err == nil { + return c, nil + } + } + + return nil, errors.New("Channel not found.") +}