commit
f6c2267e9f
|
|
@ -42,9 +42,7 @@ class Player(VoiceProtocol):
|
||||||
self._last_update: int = 0
|
self._last_update: int = 0
|
||||||
self._current_track_id = None
|
self._current_track_id = None
|
||||||
|
|
||||||
|
self._voice_server_update_data = {}
|
||||||
self._session_id: Optional[str] = None
|
|
||||||
self._voice_server_update_data: Optional[dict] = None
|
|
||||||
|
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
|
|
@ -106,28 +104,29 @@ class Player(VoiceProtocol):
|
||||||
self._is_connected = state.get('connected')
|
self._is_connected = state.get('connected')
|
||||||
self._last_position = state.get('position')
|
self._last_position = state.get('position')
|
||||||
|
|
||||||
async def _dispatch_voice_update(self) -> None:
|
async def _dispatch_voice_update(self, voice_data: Dict[str, Any]) -> None:
|
||||||
|
if {'sessionId', 'event'} != self._voice_server_update_data.keys():
|
||||||
if not self._session_id or not self._voice_server_update_data:
|
|
||||||
return
|
return
|
||||||
|
|
||||||
await self._node.send(op='voiceUpdate', sessionId=self._session_id, guildId=str(self._guild.id), event={**self._voice_server_update_data})
|
await self._node.send(
|
||||||
|
op='voiceUpdate',
|
||||||
|
guildId=str(self._guild.id),
|
||||||
|
**voice_data
|
||||||
|
)
|
||||||
|
|
||||||
async def _voice_server_update(self, data: dict):
|
async def _voice_server_update(self, data: dict):
|
||||||
|
self._voice_server_update_data.update({'event': data})
|
||||||
self._voice_server_update_data = data
|
await self._dispatch_voice_update(self._voice_server_update_data)
|
||||||
await self._dispatch_voice_update()
|
|
||||||
|
|
||||||
|
|
||||||
async def _voice_state_update(self, data: dict):
|
async def _voice_state_update(self, data: dict):
|
||||||
|
self._voice_server_update_data.update({'sessionId': data.get('session_id')})
|
||||||
if not (channel_id := data.get('channel_id')):
|
if not (channel_id := data.get('channel_id')):
|
||||||
self.channel, self._session_id, self._voice_server_update_data = None
|
self.channel = None
|
||||||
|
self._voice_server_update_data.clear()
|
||||||
return
|
return
|
||||||
|
|
||||||
self.channel = self._guild.get_channel(int(channel_id))
|
self.channel = self._guild.get_channel(int(channel_id))
|
||||||
self._session_id = data.get('session_id')
|
await self._dispatch_voice_update({**self._voice_server_update_data, "event": data})
|
||||||
await self._dispatch_voice_update()
|
|
||||||
|
|
||||||
async def _dispatch_event(self, data: dict):
|
async def _dispatch_event(self, data: dict):
|
||||||
event_type = data.get('type')
|
event_type = data.get('type')
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue