From e2bfa90eef71425af80403ba5e60c7e52c179bf9 Mon Sep 17 00:00:00 2001 From: Rapptz Date: Fri, 29 Apr 2016 20:11:13 -0400 Subject: [PATCH] Add User.mentioned_in helper to check if a message mentions you. --- discord/member.py | 18 ++++++++++++++++-- discord/user.py | 16 ++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/discord/member.py b/discord/member.py index 5acc87f5c..8b756359d 100644 --- a/discord/member.py +++ b/discord/member.py @@ -26,7 +26,7 @@ DEALINGS IN THE SOFTWARE. from .user import User from .game import Game -from .utils import parse_time +from . import utils from .enums import Status from .colour import Colour @@ -76,7 +76,7 @@ class Member(User): super().__init__(**kwargs.get('user')) self.deaf = kwargs.get('deaf') self.mute = kwargs.get('mute') - self.joined_at = parse_time(kwargs.get('joined_at')) + self.joined_at = utils.parse_time(kwargs.get('joined_at')) self.roles = kwargs.get('roles', []) self.status = Status.offline game = kwargs.get('game', {}) @@ -133,3 +133,17 @@ class Member(User): return '<@{}>'.format(self.id) mention.__doc__ = User.mention.__doc__ + + def mentioned_in(self, message): + mentioned = super().mentioned_in(message) + if mentioned: + return True + + for role in message.role_mentions: + has_role = utils.get(self.roles, id=role.id) is not None + if has_role: + return True + + return False + + mentioned_in.__doc__ = User.mentioned_in.__doc__ diff --git a/discord/user.py b/discord/user.py index c05d9aa1d..9dc0ded7c 100644 --- a/discord/user.py +++ b/discord/user.py @@ -135,3 +135,19 @@ class User: """ return getattr(self, 'nick', None) or self.name + def mentioned_in(self, message): + """Checks if the user is mentioned in the specified message. + + Parameters + ----------- + message : :class:`Message` + The message to check if you're mentioned in. + """ + + if message.mention_everyone: + return True + + if self in message.mentions: + return True + + return False