mirror of
https://github.com/Rapptz/discord.py.git
synced 2025-06-06 11:57:17 +00:00
Allow setting a presence upon logging in.
This commit is contained in:
parent
9e24d43c63
commit
3436792614
@ -92,6 +92,10 @@ class Client:
|
|||||||
members from the guilds the bot belongs to. If this is ``False``\, then
|
members from the guilds the bot belongs to. If this is ``False``\, then
|
||||||
no offline members are received and :meth:`request_offline_members`
|
no offline members are received and :meth:`request_offline_members`
|
||||||
must be used to fetch the offline members of the guild.
|
must be used to fetch the offline members of the guild.
|
||||||
|
game: Optional[:class:`Game`]
|
||||||
|
A game to start your presence with upon logging on to Discord.
|
||||||
|
status: Optional[:class:`Status`]
|
||||||
|
A status to start your presence with upon logging on to Discord.
|
||||||
|
|
||||||
Attributes
|
Attributes
|
||||||
-----------
|
-----------
|
||||||
|
@ -275,6 +275,15 @@ class DiscordWebSocket(websockets.client.WebSocketClientProtocol):
|
|||||||
if self.shard_id is not None and self.shard_count is not None:
|
if self.shard_id is not None and self.shard_count is not None:
|
||||||
payload['d']['shard'] = [self.shard_id, self.shard_count]
|
payload['d']['shard'] = [self.shard_id, self.shard_count]
|
||||||
|
|
||||||
|
state = self._connection
|
||||||
|
if state._game is not None or state._status is not None:
|
||||||
|
payload['d']['presence'] = {
|
||||||
|
'status': state._status,
|
||||||
|
'game': state._game,
|
||||||
|
'since': 0,
|
||||||
|
'afk': False
|
||||||
|
}
|
||||||
|
|
||||||
yield from self.send_as_json(payload)
|
yield from self.send_as_json(payload)
|
||||||
log.info('Shard ID %s has sent the IDENTIFY payload.', self.shard_id)
|
log.info('Shard ID %s has sent the IDENTIFY payload.', self.shard_id)
|
||||||
|
|
||||||
|
@ -32,7 +32,7 @@ from .relationship import Relationship
|
|||||||
from .channel import *
|
from .channel import *
|
||||||
from .member import Member
|
from .member import Member
|
||||||
from .role import Role
|
from .role import Role
|
||||||
from .enums import ChannelType, try_enum
|
from .enums import ChannelType, try_enum, Status
|
||||||
from .calls import GroupCall
|
from .calls import GroupCall
|
||||||
from . import utils, compat
|
from . import utils, compat
|
||||||
|
|
||||||
@ -64,6 +64,21 @@ class ConnectionState:
|
|||||||
self._ready_task = None
|
self._ready_task = None
|
||||||
self._fetch_offline = options.get('fetch_offline_members', True)
|
self._fetch_offline = options.get('fetch_offline_members', True)
|
||||||
self._listeners = []
|
self._listeners = []
|
||||||
|
|
||||||
|
game = options.get('game', None)
|
||||||
|
if game:
|
||||||
|
game = dict(game)
|
||||||
|
|
||||||
|
status = options.get('status', None)
|
||||||
|
if status:
|
||||||
|
if status is Status.offline:
|
||||||
|
status = 'invisible'
|
||||||
|
else:
|
||||||
|
status = str(status)
|
||||||
|
|
||||||
|
self._game = game
|
||||||
|
self._status = status
|
||||||
|
|
||||||
self.clear()
|
self.clear()
|
||||||
|
|
||||||
def clear(self):
|
def clear(self):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user