aboutsummaryrefslogtreecommitdiff
path: root/src/framework
diff options
context:
space:
mode:
Diffstat (limited to 'src/framework')
-rw-r--r--src/framework/standard/help_commands.rs14
-rw-r--r--src/framework/standard/mod.rs5
2 files changed, 12 insertions, 7 deletions
diff --git a/src/framework/standard/help_commands.rs b/src/framework/standard/help_commands.rs
index 9bae941..dbf25a9 100644
--- a/src/framework/standard/help_commands.rs
+++ b/src/framework/standard/help_commands.rs
@@ -51,7 +51,7 @@ fn remove_aliases(cmds: &HashMap<String, CommandOrAlias>) -> HashMap<&String, &I
result
}
-/// Checks whether a user is member of required roles
+/// Checks whether a user is member of required roles
/// and given the required permissions.
fn has_all_requirements(cmd: &Command, guild: &Guild, member: &Member, msg: &Message) -> bool {
if cmd.allowed_roles.is_empty() {
@@ -102,7 +102,8 @@ pub fn with_embeds(_: &mut Context,
CommandOrAlias::Command(ref cmd) => {
if !cmd.allowed_roles.is_empty() {
if let Some(guild) = msg.guild() {
- let guild = guild.read().unwrap();
+ let guild = guild.read();
+
if let Some(member) = guild.members.get(&msg.author.id) {
if let Ok(permissions) = member.permissions() {
if !permissions.administrator() &&
@@ -209,7 +210,8 @@ pub fn with_embeds(_: &mut Context,
if cmd.help_available {
if let Some(guild) = msg.guild() {
- let guild = guild.read().unwrap();
+ let guild = guild.read();
+
if let Some(member) = guild.members.get(&msg.author.id) {
if let Ok(permissions) = member.permissions() {
if cmd.help_available &&
@@ -275,7 +277,8 @@ pub fn plain(_: &mut Context,
CommandOrAlias::Command(ref cmd) => {
if !cmd.allowed_roles.is_empty() {
if let Some(guild) = msg.guild() {
- let guild = guild.read().unwrap();
+ let guild = guild.read();
+
if let Some(member) = guild.members.get(&msg.author.id) {
if let Ok(permissions) = member.permissions() {
if !permissions.administrator() &&
@@ -362,7 +365,8 @@ pub fn plain(_: &mut Context,
for name in command_names {
let cmd = &commands[name];
if let Some(guild) = msg.guild() {
- let guild = guild.read().unwrap();
+ let guild = guild.read();
+
if let Some(member) = guild.members.get(&msg.author.id) {
if let Ok(permissions) = member.permissions() {
if cmd.help_available &&
diff --git a/src/framework/standard/mod.rs b/src/framework/standard/mod.rs
index a44c6e7..c3f0d70 100644
--- a/src/framework/standard/mod.rs
+++ b/src/framework/standard/mod.rs
@@ -400,7 +400,7 @@ impl StandardFramework {
#[cfg(feature = "cache")]
fn is_blocked_guild(&self, message: &Message) -> bool {
- if let Some(Channel::Guild(channel)) = CACHE.read().unwrap().channel(message.channel_id) {
+ if let Some(Channel::Guild(channel)) = CACHE.read().channel(message.channel_id) {
let guild_id = channel.with(|g| g.guild_id);
if self.configuration.blocked_guilds.contains(&guild_id) {
return true;
@@ -510,7 +510,8 @@ impl StandardFramework {
} else {
if !command.allowed_roles.is_empty() {
if let Some(guild) = message.guild() {
- let guild = guild.read().unwrap();
+ let guild = guild.read();
+
if let Some(member) = guild.members.get(&message.author.id) {
if let Ok(permissions) = member.permissions() {
if !permissions.administrator() {