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 {