mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-06-06 20:07:17 +00:00
Add support for multiple activities
This commit is contained in:
parent
c184b0a53d
commit
e89e7dfe93
@ -833,7 +833,7 @@ class Client:
|
|||||||
if me is None:
|
if me is None:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
me.activity = activity
|
me.activities = (activity,)
|
||||||
me.status = status_enum
|
me.status = status_enum
|
||||||
|
|
||||||
# Guild stuff
|
# Guild stuff
|
||||||
|
@ -246,7 +246,7 @@ class Guild(Hashable):
|
|||||||
member = self.get_member(user_id)
|
member = self.get_member(user_id)
|
||||||
if member is not None:
|
if member is not None:
|
||||||
member.status = try_enum(Status, presence['status'])
|
member.status = try_enum(Status, presence['status'])
|
||||||
member.activity = create_activity(presence.get('game'))
|
member.activities = tuple(map(create_activity, presence.get('activities', [])))
|
||||||
|
|
||||||
if 'channels' in data:
|
if 'channels' in data:
|
||||||
channels = data['channels']
|
channels = data['channels']
|
||||||
|
@ -142,15 +142,15 @@ class Member(discord.abc.Messageable, _BaseUser):
|
|||||||
status : :class:`Status`
|
status : :class:`Status`
|
||||||
The member's status. There is a chance that the status will be a :class:`str`
|
The member's status. There is a chance that the status will be a :class:`str`
|
||||||
if it is a value that is not recognised by the enumerator.
|
if it is a value that is not recognised by the enumerator.
|
||||||
activity: Union[:class:`Game`, :class:`Streaming`, :class:`Activity`]
|
activities: Tuple[Union[:class:`Game`, :class:`Streaming`, :class:`Spotify`, :class:`Activity`]]
|
||||||
The activity that the user is currently doing. Could be None if no activity is being done.
|
The activities that the user is currently doing.
|
||||||
guild: :class:`Guild`
|
guild: :class:`Guild`
|
||||||
The guild that the member belongs to.
|
The guild that the member belongs to.
|
||||||
nick: Optional[:class:`str`]
|
nick: Optional[:class:`str`]
|
||||||
The guild specific nickname of the user.
|
The guild specific nickname of the user.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
__slots__ = ('_roles', 'joined_at', 'status', 'activity', 'guild', 'nick', '_user', '_state')
|
__slots__ = ('_roles', 'joined_at', 'status', 'activities', 'guild', 'nick', '_user', '_state')
|
||||||
|
|
||||||
def __init__(self, *, data, guild, state):
|
def __init__(self, *, data, guild, state):
|
||||||
self._state = state
|
self._state = state
|
||||||
@ -159,7 +159,7 @@ class Member(discord.abc.Messageable, _BaseUser):
|
|||||||
self.joined_at = utils.parse_time(data.get('joined_at'))
|
self.joined_at = utils.parse_time(data.get('joined_at'))
|
||||||
self._update_roles(data)
|
self._update_roles(data)
|
||||||
self.status = Status.offline
|
self.status = Status.offline
|
||||||
self.activity = create_activity(data.get('game'))
|
self.activities = tuple(map(create_activity, data.get('activities', [])))
|
||||||
self.nick = data.get('nick', None)
|
self.nick = data.get('nick', None)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
@ -187,7 +187,7 @@ class Member(discord.abc.Messageable, _BaseUser):
|
|||||||
self.status = member.status
|
self.status = member.status
|
||||||
self.guild = member.guild
|
self.guild = member.guild
|
||||||
self.nick = member.nick
|
self.nick = member.nick
|
||||||
self.activity = member.activity
|
self.activities = member.activities
|
||||||
self._state = member._state
|
self._state = member._state
|
||||||
self._user = User._copy(member._user)
|
self._user = User._copy(member._user)
|
||||||
return self
|
return self
|
||||||
@ -217,7 +217,7 @@ class Member(discord.abc.Messageable, _BaseUser):
|
|||||||
|
|
||||||
def _presence_update(self, data, user):
|
def _presence_update(self, data, user):
|
||||||
self.status = try_enum(Status, data['status'])
|
self.status = try_enum(Status, data['status'])
|
||||||
self.activity = create_activity(data.get('game'))
|
self.activities = tuple(map(create_activity, data.get('activities', [])))
|
||||||
|
|
||||||
if len(user) > 1:
|
if len(user) > 1:
|
||||||
u = self._user
|
u = self._user
|
||||||
@ -286,6 +286,18 @@ class Member(discord.abc.Messageable, _BaseUser):
|
|||||||
"""
|
"""
|
||||||
return self.nick if self.nick is not None else self.name
|
return self.nick if self.nick is not None else self.name
|
||||||
|
|
||||||
|
@property
|
||||||
|
def activity(self):
|
||||||
|
"""Returns a class Union[:class:`Game`, :class:`Streaming`, :class:`Spotify`, :class:`Activity`] for the primary
|
||||||
|
activity the user is currently doing. Could be None if no activity is being done.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
A user may have multiple activities, these can be accessed under :attr:`activities`.
|
||||||
|
"""
|
||||||
|
if self.activities:
|
||||||
|
return self.activities[0]
|
||||||
|
|
||||||
def mentioned_in(self, message):
|
def mentioned_in(self, message):
|
||||||
"""Checks if the member is mentioned in the specified message.
|
"""Checks if the member is mentioned in the specified message.
|
||||||
|
|
||||||
|
@ -353,5 +353,5 @@ class AutoShardedClient(Client):
|
|||||||
if me is None:
|
if me is None:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
me.activity = activity
|
me.activities = (activity,)
|
||||||
me.status = status_enum
|
me.status = status_enum
|
||||||
|
@ -987,8 +987,8 @@ msgid "``Member.game``"
|
|||||||
msgstr "``Member.game``"
|
msgstr "``Member.game``"
|
||||||
|
|
||||||
#: ../../migrating.rst:369
|
#: ../../migrating.rst:369
|
||||||
msgid "Use :attr:`Member.activity` instead."
|
msgid "Use :attr:`Member.activities` instead."
|
||||||
msgstr "代わりに :attr:`Member.activity` 使用してください。"
|
msgstr "代わりに :attr:`Member.activities` 使用してください。"
|
||||||
|
|
||||||
#: ../../migrating.rst:371
|
#: ../../migrating.rst:371
|
||||||
msgid "``Guild.role_hierarchy`` / ``Server.role_hierarchy``"
|
msgid "``Guild.role_hierarchy`` / ``Server.role_hierarchy``"
|
||||||
|
@ -366,7 +366,7 @@ They will be enumerated here.
|
|||||||
|
|
||||||
- ``Member.game``
|
- ``Member.game``
|
||||||
|
|
||||||
- Use :attr:`Member.activity` instead.
|
- Use :attr:`Member.activities` instead.
|
||||||
|
|
||||||
- ``Guild.role_hierarchy`` / ``Server.role_hierarchy``
|
- ``Guild.role_hierarchy`` / ``Server.role_hierarchy``
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user