Supported clear queue endpoint in ipc
This commit is contained in:
@@ -646,13 +646,7 @@ class Basic(commands.Cog):
|
||||
if not player.is_privileged(ctx.author):
|
||||
return await send(ctx, "missingPerms_queue", ephemeral=True)
|
||||
|
||||
queue = queue.lower()
|
||||
if queue == 'history':
|
||||
player.queue.history_clear(player.is_playing)
|
||||
else:
|
||||
queue = "queue"
|
||||
player.queue.clear()
|
||||
|
||||
await player.clear_queue(queue, ctx.author)
|
||||
await send(ctx, "cleared", queue.capitalize())
|
||||
|
||||
@commands.hybrid_command(name="remove", aliases=get_aliases("remove"))
|
||||
|
||||
@@ -266,6 +266,10 @@ async def removeTrack(player: Player, member: Member, data: Dict) -> None:
|
||||
index, index2 = data.get("index"), data.get("index2")
|
||||
await player.remove_track(index, index2, requester=member)
|
||||
|
||||
async def clearQueue(player: Player, member: Member, data: Dict) -> None:
|
||||
queue_type = data.get("queue_type", "").lower()
|
||||
await player.clear_queue(queue_type, member)
|
||||
|
||||
async def updateVolume(player: Player, member: Member, data: Dict) -> None:
|
||||
if not member.guild_permissions.manage_guild:
|
||||
return missingPermission(member.id)
|
||||
@@ -711,6 +715,7 @@ METHODS: Dict[str, Union[SystemMethod, PlayerMethod]] = {
|
||||
"shuffleTrack": PlayerMethod(shuffleTrack, credit=3),
|
||||
"repeatTrack": PlayerMethod(repeatTrack),
|
||||
"removeTrack": PlayerMethod(removeTrack),
|
||||
"clearQueue": PlayerMethod(clearQueue),
|
||||
"updateVolume": PlayerMethod(updateVolume, credit=2),
|
||||
"updatePause": PlayerMethod(updatePause),
|
||||
"updatePosition": PlayerMethod(updatePosition),
|
||||
|
||||
@@ -633,6 +633,7 @@ class Player(VoiceProtocol):
|
||||
return self._volume
|
||||
|
||||
async def shuffle(self, queue_type: str, requester: Member = None) -> None:
|
||||
"""Shuffles the tracks in the specified queue or history."""
|
||||
replacement = self.queue.tracks() if queue_type == "queue" else self.queue.history()
|
||||
if len(replacement) < 3:
|
||||
raise VoicelinkException(self.get_msg('shuffleError'))
|
||||
@@ -708,6 +709,19 @@ class Player(VoiceProtocol):
|
||||
self._logger.debug(f"Player in {self.guild.name}({self.guild.id}) has been applied a {filter.tag} filter.")
|
||||
return self._filters
|
||||
|
||||
async def clear_queue(self, queue_type: str, requester: Member = None) -> None:
|
||||
queue_type = queue_type.lower()
|
||||
if queue_type == 'history':
|
||||
self.queue.history_clear(self.is_playing)
|
||||
elif queue_type == "queue":
|
||||
self.queue.clear()
|
||||
|
||||
if self.is_ipc_connected:
|
||||
await self.send_ws({
|
||||
"op": "clearQueue",
|
||||
"queue_type": queue_type
|
||||
}, requester)
|
||||
|
||||
async def remove_filter(self, filter_tag: str, requester: Member = None, fast_apply: bool = False) -> Filters:
|
||||
self._filters.remove_filter(filter_tag=filter_tag)
|
||||
payload = self._filters.get_all_payloads()
|
||||
|
||||
Reference in New Issue
Block a user