Merge pull request #221 from iopred/permstate

Use State for UserChannelPermissions when possible.
This commit is contained in:
Bruce 2016-06-27 08:16:40 -05:00 committed by GitHub
commit 5f6a972b91

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 {