diff options
| author | acdenisSK <[email protected]> | 2017-11-04 20:06:40 +0100 |
|---|---|---|
| committer | acdenisSK <[email protected]> | 2017-11-04 20:06:40 +0100 |
| commit | 0bd519f4ef9784d0fb5663d74db0d567f0bb1ae5 (patch) | |
| tree | cc2a6f44e97e42420507964dab4662fcccd9beb3 /src/model/guild/member.rs | |
| parent | Fix Help-Commands to list all eligible commands in DMs. (#212) (diff) | |
| parent | Bump to v0.4.3 (diff) | |
| download | serenity-0bd519f4ef9784d0fb5663d74db0d567f0bb1ae5.tar.xz serenity-0bd519f4ef9784d0fb5663d74db0d567f0bb1ae5.zip | |
Merge v0.4.3
Diffstat (limited to 'src/model/guild/member.rs')
| -rw-r--r-- | src/model/guild/member.rs | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/src/model/guild/member.rs b/src/model/guild/member.rs index 7420faa..e5feee7 100644 --- a/src/model/guild/member.rs +++ b/src/model/guild/member.rs @@ -14,6 +14,7 @@ use utils::Colour; #[cfg(all(feature = "cache", feature = "model"))] use {CACHE, http, utils}; +/// A trait for allowing both u8 or &str or (u8, &str) to be passed into the `ban` methods in `Guild` and `Member`. pub trait BanOptions { fn dmd(&self) -> u8 { 0 } fn reason(&self) -> &str { "" } @@ -275,7 +276,7 @@ impl Member { .get(&self.guild_id) .map(|guild| guild.read().has_perms(req)); - if let Some(Ok(false)) = has_perms { + if let Some(false) = has_perms { return Err(Error::Model(ModelError::InvalidPermissions(req))); } } @@ -283,7 +284,7 @@ impl Member { self.guild_id.kick(self.user.read().id) } - /// Returns the permissions for the member. + /// Returns the guild-level permissions for the member. /// /// # Examples /// @@ -310,19 +311,9 @@ impl Member { None => return Err(From::from(ModelError::GuildNotFound)), }; - let guild = guild.read(); + let reader = guild.read().unwrap(); - let default_channel = match guild.default_channel(self.user.read().id) { - Some(dc) => dc, - None => return Err(From::from(ModelError::ItemMissing)), - }; - - let default_channel_reader = default_channel.read(); - - Ok( - guild - .permissions_for(default_channel_reader.id, self.user.read().id), - ) + Ok(reader.member_permissions(self.user.read().unwrap().id)) } /// Removes a [`Role`] from the member, editing its roles in-place if the |