aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRapptz <[email protected]>2016-04-29 20:11:13 -0400
committerRapptz <[email protected]>2016-04-29 20:11:13 -0400
commite2bfa90eef71425af80403ba5e60c7e52c179bf9 (patch)
tree2dd7c7f3c029cf1f6eb43547f18cf2da6ffd9f7b
parentMember.mention now uses nickname hint if needed. (diff)
downloaddiscord.py-e2bfa90eef71425af80403ba5e60c7e52c179bf9.tar.xz
discord.py-e2bfa90eef71425af80403ba5e60c7e52c179bf9.zip
Add User.mentioned_in helper to check if a message mentions you.
-rw-r--r--discord/member.py18
-rw-r--r--discord/user.py16
2 files changed, 32 insertions, 2 deletions
diff --git a/discord/member.py b/discord/member.py
index 5acc87f5..8b756359 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 c05d9aa1..9dc0ded7 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