Use State for UserChannelPermissions when possible.

This commit is contained in:
Chris Rhodes 2016-06-25 16:22:17 -07:00
parent 5f983250fe
commit b225864d96

View file

@ -380,15 +380,20 @@ func (s *Session) UserGuildSettingsEdit(guildID string, settings *UserGuildSetti
// userID : The ID of the user to calculate permissions for. // userID : The ID of the user to calculate permissions for.
// channelID : The ID of the channel to calculate permission for. // channelID : The ID of the channel to calculate permission for.
func (s *Session) UserChannelPermissions(userID, channelID string) (apermissions int, err error) { func (s *Session) UserChannelPermissions(userID, channelID string) (apermissions int, err error) {
channel, err := s.State.Channel(channelID)
channel, err := s.Channel(channelID) if err != nil || channel == nil {
if err != nil { channel, err = s.Channel(channelID)
return if err != nil {
return
}
} }
guild, err := s.Guild(channel.GuildID) guild, err := s.State.Guild(channel.GuildID)
if err != nil { if err != nil || guild == nil {
return guild, err = s.Guild(channel.GuildID)
if err != nil {
return
}
} }
if userID == guild.OwnerID { if userID == guild.OwnerID {
@ -396,9 +401,12 @@ func (s *Session) UserChannelPermissions(userID, channelID string) (apermissions
return return
} }
member, err := s.GuildMember(guild.ID, userID) member, err := s.State.Member(guild.ID, userID)
if err != nil { if err != nil || member == nil {
return member, err = s.GuildMember(guild.ID, userID)
if err != nil {
return
}
} }
for _, role := range guild.Roles { for _, role := range guild.Roles {