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.
// 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 {