Modifying clear and skip commands to work with process

This commit is contained in:
Rafael Vargas
2022-07-22 22:57:27 -03:00
parent 19ae59c5b8
commit 1ce6deaa48
3 changed files with 67 additions and 45 deletions

View File

@@ -3,6 +3,8 @@ from discord import Client
from Controllers.AbstractController import AbstractController
from Exceptions.Exceptions import BadCommandUsage
from Controllers.ControllerResponse import ControllerResponse
from Parallelism.ProcessManager import ProcessManager
from Parallelism.Commands import VCommands, VCommandsType
class SkipController(AbstractController):
@@ -10,14 +12,17 @@ class SkipController(AbstractController):
super().__init__(ctx, bot)
async def run(self) -> ControllerResponse:
if self.player.playlist.isLoopingOne():
embed = self.embeds.ERROR_DUE_LOOP_ONE_ON()
error = BadCommandUsage()
return ControllerResponse(self.ctx, embed, error)
processManager = ProcessManager()
processContext = processManager.getRunningPlayerContext(self.guild)
if processContext: # Verify if there is a running process
playlist = processContext.getPlaylist()
if playlist.isLoopingOne():
embed = self.embeds.ERROR_DUE_LOOP_ONE_ON()
error = BadCommandUsage()
return ControllerResponse(self.ctx, embed, error)
voice = self.controller.get_guild_voice(self.guild)
if voice is None:
return ControllerResponse(self.ctx)
else:
voice.stop()
return ControllerResponse(self.ctx)
# Send a command to the player process to skip the music
command = VCommands(VCommandsType.SKIP, None)
queue = processContext.getQueue()
queue.put(command)
return ControllerResponse(self.ctx)