65 lines
2 KiB
Python
65 lines
2 KiB
Python
from abc import ABC, abstractmethod
|
|
|
|
from redbot.core import commands
|
|
from redbot.core.bot import Red
|
|
|
|
from .utilities.config import config
|
|
|
|
|
|
class CompositeMetaClass(type(commands.Cog), type(ABC)):
|
|
"""
|
|
This allows the metaclass used for proper type detection to
|
|
coexist with discord.py's metaclass
|
|
"""
|
|
|
|
class Mixin(ABC):
|
|
"""
|
|
Base class for well behaved type hint detection with composite class.
|
|
|
|
Basically, to keep developers sane when not all attributes are defined in each mixin.
|
|
"""
|
|
|
|
def __init__(self, *_args):
|
|
super().__init__()
|
|
self.config: config
|
|
self.bot: Red
|
|
|
|
#######################################################################
|
|
# configuration/commands.py #
|
|
#######################################################################
|
|
|
|
@abstractmethod
|
|
async def aurora(self, ctx: commands.Context) -> None:
|
|
raise NotImplementedError()
|
|
|
|
@abstractmethod
|
|
async def aurora_settings(self, ctx: commands.Context) -> None:
|
|
raise NotImplementedError()
|
|
|
|
@abstractmethod
|
|
async def aurora_settings_overrides(self, ctx: commands.Context) -> None:
|
|
raise NotImplementedError()
|
|
|
|
@abstractmethod
|
|
async def aurora_settings_guild(self, ctx: commands.Context) -> None:
|
|
raise NotImplementedError()
|
|
|
|
@abstractmethod
|
|
async def aurora_settings_addrole(self, ctx: commands.Context) -> None:
|
|
raise NotImplementedError()
|
|
|
|
@abstractmethod
|
|
async def aurora_settings_immunity(self, ctx: commands.Context) -> None:
|
|
raise NotImplementedError()
|
|
|
|
@abstractmethod
|
|
async def aurora_import(self, ctx: commands.Context) -> None:
|
|
raise NotImplementedError()
|
|
|
|
@abstractmethod
|
|
async def aurora_import_aurora(self, ctx: commands.Context) -> None:
|
|
raise NotImplementedError()
|
|
|
|
@abstractmethod
|
|
async def aurora_import_galacticbot(self, ctx: commands.Context) -> None:
|
|
raise NotImplementedError()
|