aboutsummaryrefslogtreecommitdiff
path: root/discord/message.py
diff options
context:
space:
mode:
authorRapptz <[email protected]>2015-11-16 21:18:30 -0500
committerRapptz <[email protected]>2015-11-16 21:18:30 -0500
commit75658f46a2ce9b25763b0ed612701716426b8630 (patch)
treed4f0c7926b868b58b63216754d1676470f748888 /discord/message.py
parentAdd Client.get_all_channels and Client.get_all_members (diff)
downloaddiscord.py-75658f46a2ce9b25763b0ed612701716426b8630.tar.xz
discord.py-75658f46a2ce9b25763b0ed612701716426b8630.zip
Message.mentions now returns a list of Member instead of User
Diffstat (limited to 'discord/message.py')
-rw-r--r--discord/message.py17
1 files changed, 14 insertions, 3 deletions
diff --git a/discord/message.py b/discord/message.py
index aaf13cad..65daf810 100644
--- a/discord/message.py
+++ b/discord/message.py
@@ -26,6 +26,7 @@ DEALINGS IN THE SOFTWARE.
from . import utils
from .user import User
+from .member import Member
from .object import Object
class Message(object):
@@ -68,7 +69,8 @@ class Message(object):
A boolean specifying if the message mentions everyone.
.. attribute:: mentions
- A list of :class:`User` that were mentioned.
+ A list of :class:`Member` that were mentioned. If the message is in a private message
+ then the list is always empty.
.. attribute:: id
The message ID.
@@ -91,10 +93,19 @@ class Message(object):
self.id = kwargs.get('id')
self.channel = kwargs.get('channel')
self.author = User(**kwargs.get('author', {}))
- self.mentions = [User(**mention) for mention in kwargs.get('mentions', {})]
self.attachments = kwargs.get('attachments')
self.server = self.channel.server if not self.channel.is_private else None
self._handle_upgrades(kwargs.get('channel_id'))
+ self._handle_mentions(kwargs.get('mentions', []))
+
+ def _handle_mentions(self, mentions):
+ self.mentions = []
+ if self.channel is not None and not self.channel.is_private:
+ for mention in mentions:
+ id_search = mention.get('id')
+ member = utils.find(lambda m: m.id == id_search, self.server.members)
+ if member is not None:
+ self.mentions.append(member)
def _handle_upgrades(self, channel_id):
if self.channel is None:
@@ -103,7 +114,7 @@ class Message(object):
return
if not self.channel.is_private:
- found = utils.find(lambda m: m.id == self.author.id, self.channel.server.members)
+ found = utils.find(lambda m: m.id == self.author.id, self.server.members)
if found is not None:
self.author = found