From b225864d96a363036a675ae97823ea2d777ac0eb Mon Sep 17 00:00:00 2001 From: Chris Rhodes Date: Sat, 25 Jun 2016 16:22:17 -0700 Subject: [PATCH] Use State for UserChannelPermissions when possible. --- restapi.go | 28 ++++++++++++++++++---------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/restapi.go b/restapi.go index 24dd232..3596cac 100644 --- a/restapi.go +++ b/restapi.go @@ -380,15 +380,20 @@ func (s *Session) UserGuildSettingsEdit(guildID string, settings *UserGuildSetti // userID : The ID of the user to calculate permissions for. // channelID : The ID of the channel to calculate permission for. func (s *Session) UserChannelPermissions(userID, channelID string) (apermissions int, err error) { - - channel, err := s.Channel(channelID) - if err != nil { - return + channel, err := s.State.Channel(channelID) + if err != nil || channel == nil { + channel, err = s.Channel(channelID) + if err != nil { + return + } } - guild, err := s.Guild(channel.GuildID) - if err != nil { - return + guild, err := s.State.Guild(channel.GuildID) + if err != nil || guild == nil { + guild, err = s.Guild(channel.GuildID) + if err != nil { + return + } } if userID == guild.OwnerID { @@ -396,9 +401,12 @@ func (s *Session) UserChannelPermissions(userID, channelID string) (apermissions return } - member, err := s.GuildMember(guild.ID, userID) - if err != nil { - return + member, err := s.State.Member(guild.ID, userID) + if err != nil || member == nil { + member, err = s.GuildMember(guild.ID, userID) + if err != nil { + return + } } for _, role := range guild.Roles {