From 4300e49ef2102e39e667a53a08fefcf4cb8b4bc3 Mon Sep 17 00:00:00 2001 From: Choco <94597336+ChocoMeow@users.noreply.github.com> Date: Thu, 16 Mar 2023 09:57:20 +0800 Subject: [PATCH] Update shuffle command --- cogs/basic.py | 8 ++------ voicelink/player.py | 9 +++++++++ voicelink/queue.py | 6 +++--- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/cogs/basic.py b/cogs/basic.py index 29dc049..a1ecd53 100644 --- a/cogs/basic.py +++ b/cogs/basic.py @@ -651,12 +651,8 @@ class Basic(commands.Cog): pass else: return await ctx.send(player.get_msg('shuffleVote').format(ctx.author, len(player.skip_votes), required)) - replacement = player.queue.tracks() - if len(replacement) < 3: - return await ctx.send(player.get_msg('shuffleError')) - shuffle(replacement) - player.queue.replace("Queue", replacement) - player.shuffle_votes.clear() + + player.shuffle("queue") await ctx.send(player.get_msg('shuffled')) @commands.hybrid_command(name="swap", aliases=get_aliases("swap")) diff --git a/voicelink/player.py b/voicelink/player.py index bfdd933..32a8a86 100644 --- a/voicelink/player.py +++ b/voicelink/player.py @@ -55,6 +55,7 @@ from .filters import Filter, Filters from .objects import Track from .pool import Node, NodePool from .queue import Queue, FairQueue +from random import shuffle class Player(VoiceProtocol): """The base player class for Voicelink. @@ -555,6 +556,14 @@ class Player(VoiceProtocol): self._volume = volume return self._volume + async def shuffle(self, queue_type: str, requester: Member = None): + replacement = self.queue.tracks() if queue_type == "queue" else self.queue.history() + if len(replacement) < 3: + return VoicelinkException(self.get_msg('shuffleError')) + + shuffle(replacement) + self.queue.replace(queue_type, replacement) + self.shuffle_votes.clear() async def add_filter(self, filter: Filter, fast_apply=False) -> Filters: try: self._filters.add_filter(filter=filter) diff --git a/voicelink/queue.py b/voicelink/queue.py index 375474b..20ff437 100644 --- a/voicelink/queue.py +++ b/voicelink/queue.py @@ -111,11 +111,11 @@ class Queue: def clear(self): del self._queue[self._position:] - def replace(self, queuetype:str, replacement:list): - if queuetype == "Queue": + def replace(self, queue_type:str, replacement:list): + if queue_type == "queue": self.clear() self._queue += replacement - elif queuetype == "History": + elif queue_type == "history": self._queue[:self._position] = replacement def swap(self, num1:int, num2:int):