from abc import ABCMeta, abstractmethod from enum import Enum, auto class AbstractChannelRewards(metaclass=ABCMeta): """ This is the base class for channel points. In order to load a channel point redemption a few conditions must be met: 1) The class name MUST begin with 'ChannelPoint' i.e. CommandTTS, CommandBan, etc... 2) the class MUST extend AbstractCommand Generally, it would be advisable to define the ChannelPointPrize redemption name as a variable of the class and to then call super().__init__(command) """ class ChannelRewardsType(Enum): NONE = auto() channelPoints = auto() twitch_bits = auto() twitch_subs = auto() class ChannelRewardsSource(Enum): default = 0 Praxis = 1 Twitch = 2 Discord = 3 def __init__(self, ChannelRewardName: str, n_args: int = 0, ChannelReward_type=ChannelRewardsType.NONE, helpText:list=["No Help"], isChannelRewardEnabled = True): self.ChannelRewardName = ChannelRewardName self.n_args = n_args self.ChannelRewardType = ChannelReward_type self.help = helpText self.isChannelRewardEnabled = isChannelRewardEnabled # no touch! def get_args(self, text: str) -> list: return text.split(" ")[0:self.n_args + 1] # no touch! def get_ChannelRewardName(self) -> str: return self.ChannelRewardName # no touch! def get_ChannelRewardType(self): return self.ChannelRewardType # no touch! def get_help(self): return self.help # no touch! def is_ChannelReward_enabled(self): return self.isChannelRewardEnabled @abstractmethod def do_ChannelReward(self, source, user, command, rest, bonusData): pass