[Audio] New stuff from RLL 0.7.0 (#4529)

* New stuff from RLL 0.7.0

* discard here

* formatting

* do this properly

* make it more unique

* bump RLL

* nuke `[p]llset restport`, only `[p]llset wsport` matters

* Update setup.cfg

* properly deprecate Rest port and Ensure Nodes are properly closed upon running LLSET commands

* restore player on a attempt reconnect

* restore player as a task

* ensure we send the signal only if not playing.

* register events a little earlier

* hmmm

* ffs

* update application.yml

* fix permissions edge case
This commit is contained in:
Draper
2020-10-27 16:16:19 +00:00
committed by GitHub
parent af8af1934c
commit d421c1c240
12 changed files with 61 additions and 42 deletions

View File

@@ -239,7 +239,11 @@ class DpyEvents(MixinMeta, metaclass=CompositeMetaClass):
if self.cog_init_task:
self.cog_init_task.cancel()
if self._restore_task:
self._restore_task.cancel()
lavalink.unregister_event_listener(self.lavalink_event_handler)
lavalink.unregister_update_listener(self.lavalink_update_handler)
self.bot.loop.create_task(lavalink.close())
if self.player_manager is not None:
self.bot.loop.create_task(self.player_manager.shutdown())

View File

@@ -1,5 +1,6 @@
import asyncio
import contextlib
import datetime
import logging
from pathlib import Path
@@ -16,6 +17,12 @@ _ = Translator("Audio", Path(__file__))
class LavalinkEvents(MixinMeta, metaclass=CompositeMetaClass):
async def lavalink_update_handler(
self, player: lavalink.Player, event_type: lavalink.enums.PlayerState, extra
):
self._last_ll_update = datetime.datetime.now(datetime.timezone.utc)
self._ll_guild_updates.add(int(extra.get("guildId", 0)))
async def lavalink_event_handler(
self, player: lavalink.Player, event_type: lavalink.LavalinkEvents, extra
) -> None:
@@ -160,6 +167,7 @@ class LavalinkEvents(MixinMeta, metaclass=CompositeMetaClass):
if disconnect:
self.bot.dispatch("red_audio_audio_disconnect", guild)
await player.disconnect()
self._ll_guild_updates.discard(guild.id)
if status:
player_check = await self.get_active_player_count()
await self.update_bot_presence(*player_check)
@@ -193,6 +201,7 @@ class LavalinkEvents(MixinMeta, metaclass=CompositeMetaClass):
await self.config.custom("EQUALIZER", guild_id).eq_bands.set(eq.bands)
await player.stop()
await player.disconnect()
self._ll_guild_updates.discard(guild_id)
self.bot.dispatch("red_audio_audio_disconnect", guild)
if message_channel:
message_channel = self.bot.get_channel(message_channel)