Vulkan/Parallelism/AbstractProcessManager.py

32 lines
839 B
Python

from abc import ABC, abstractmethod
from typing import Union
from discord.ext.commands import Context
from discord import Guild, Interaction
from Music.Song import Song
from Parallelism.ProcessInfo import PlayerInfo
class AbstractPlayersManager(ABC):
def __init__(self, bot) -> None:
pass
@abstractmethod
def setPlayerInfo(self, guild: Guild, info: PlayerInfo):
pass
@abstractmethod
def getOrCreatePlayerInfo(self, guild: Guild, context: Union[Context, Interaction]) -> PlayerInfo:
pass
@abstractmethod
def resetProcess(self, guild: Guild, context: Context) -> None:
pass
@abstractmethod
def getRunningPlayerInfo(self, guild: Guild) -> PlayerInfo:
pass
@abstractmethod
async def showNowPlaying(self, guildID: int, song: Song) -> None:
pass