Implement StageInstance
This commit is contained in:
@ -53,6 +53,7 @@ from .object import Object
|
||||
from .invite import Invite
|
||||
from .interactions import Interaction
|
||||
from .ui.view import ViewStore
|
||||
from .stage_instance import StageInstance
|
||||
|
||||
class ChunkRequest:
|
||||
def __init__(self, guild_id, loop, resolver, *, cache=True):
|
||||
@ -956,6 +957,40 @@ class ConnectionState:
|
||||
else:
|
||||
log.debug('WEBHOOKS_UPDATE referencing an unknown channel ID: %s. Discarding.', data['channel_id'])
|
||||
|
||||
def parse_stage_instance_create(self, data):
|
||||
guild = self._get_guild(int(data['guild_id']))
|
||||
if guild is not None:
|
||||
stage_instance = StageInstance(guild=guild, state=self, data=data)
|
||||
guild._stage_instances[stage_instance.id] = stage_instance
|
||||
self.dispatch('stage_instance_create', stage_instance)
|
||||
else:
|
||||
log.debug('STAGE_INSTANCE_CREATE referencing unknown guild ID: %s. Discarding.', data['guild_id'])
|
||||
|
||||
def parse_stage_instance_update(self, data):
|
||||
guild = self._get_guild(int(data['guild_id']))
|
||||
if guild is not None:
|
||||
stage_instance = guild._stage_instances.get(int(data['id']))
|
||||
if stage_instance is not None:
|
||||
old_stage_instance = copy.copy(stage_instance)
|
||||
stage_instance._update(data)
|
||||
self.dispatch('stage_instance_update', old_stage_instance, stage_instance)
|
||||
else:
|
||||
log.debug('STAGE_INSTANCE_UPDATE referencing unknown stage instance ID: %s. Discarding.', data['id'])
|
||||
else:
|
||||
log.debug('STAGE_INSTANCE_UPDATE referencing unknown guild ID: %s. Discarding.', data['guild_id'])
|
||||
|
||||
def parse_stage_instance_delete(self, data):
|
||||
guild = self._get_guild(int(data['guild_id']))
|
||||
if guild is not None:
|
||||
try:
|
||||
stage_instance = guild._stage_instances.pop(int(data['id']))
|
||||
except KeyError:
|
||||
pass
|
||||
else:
|
||||
self.dispatch('stage_instance_delete', stage_instance)
|
||||
else:
|
||||
log.debug('STAGE_INSTANCE_DELETE referencing unknown guild ID: %s. Discarding.', data['guild_id'])
|
||||
|
||||
def parse_voice_state_update(self, data):
|
||||
guild = self._get_guild(utils._get_as_snowflake(data, 'guild_id'))
|
||||
channel_id = utils._get_as_snowflake(data, 'channel_id')
|
||||
|
Reference in New Issue
Block a user