Update shuffle command

This commit is contained in:
Choco
2023-03-16 09:57:20 +08:00
parent d1c1589e07
commit 4300e49ef2
3 changed files with 14 additions and 9 deletions

View File

@@ -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"))

View File

@@ -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)

View File

@@ -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):