class ConfigValueNotFoundException(Exception):
    "Is raised when a config value is asked for but isn't found in config.py"
    pass

class BotNotInGuildException(Exception):
    "Is raised when the bot tries to do something but realizes it has been kicked from a guild"
    pass

class SafeModeFlagged(Exception):
    "Is raised when a message flags the safe mode filters"
    pass

class UserNotFoundFromStringError(Exception):
    "Is raised when a user is not found when converting a string to a user"
    pass

class UserIsBannedException(Exception):
    "Is raised when a user tries to join a story but is banned"
    pass

class NoValidUndoCommand(Exception):
    "Is raised when a user tries to `/undo` the last story chunk but either there isn't a story file or the last log doesn't have a character length"
    pass

class NotAnAuthorException(Exception):
    "Is raised when an action would need to involve a user being an author in a guild, but this isn't the case"
    pass

class AlreadyAnAuthorException(Exception):
    "Is raised when a user tries to join as an author in a server but is already an author there"
    pass

class NoValidAnnouncementChannelException(Exception):
    "Is raised if the mot tries to make an announcement in a channel but the server doesn't have a proper announcement channel"
    pass

class NotPressConfirmException(Exception):
    "Is raised if a user doesn't click confirm after entering their story segment"
    pass

class FileTooBigException(Exception):
    "Is raised if the story file would be too big should the given text be added"
    pass

class MissingPermissionsException(Exception):
    "Is raised when the bot tries to do something (like add a role) but is forbidden"
    pass

class MessageTooLongException(Exception):
    "Is raised when a user sends a message longer than the max message length in a server"
    max_length = None
    message_length = None



class RedditSubmissionListIsEmpty(Exception):
    "Is raised when the bot is still refreshing a list of writing prompts but the user requests a writing prompt"


class UserNotFoundInGuildException(Exception):
    "Is raised when something tries to happen to a user regarding a guild, but they've left the server"
    pass

class CantDMUserException(Exception):
    "Is raised when a user has DM permissions turned off in a server"
    pass




class PremiumTooManyArchivedStoriesException(Exception):
    "Is raised when a user tries to create a new story but already has the maximum number of stories in a given server"
    pass


class PremiumMaxAuthorException(Exception):
    "Is raised when a user tries to join a server where there is already the maximum number of authors"
    pass