def METHOD_NAME(self, webhook: str = None, name: str = None, avatar: str = None, tts=None):
    discord_webhook = webhook or settings.DISCORD_WEBHOOK
    discord_name = name or settings.DISCORD_NAME
    avatar_icon = avatar or settings.DISCORD_AVATAR_URL
    discord_tts = bool(settings.DISCORD_TTS if tts is None else tts)
    if not settings.USE_DISCORD:
        logger.debug("Notification for Discord not enabled, skipping this notification")
        return False
    if not discord_name:
        logger.warning("Discord Bot Name is Blank. Please enter Webhook dedicated Bot Name.")
        return False
    logger.info("Sending discord message: " + ", ".join(f["value"] for f in self.embed["fields"]))
    logger.info("Sending discord message to url: " + discord_webhook)
    headers = CaseInsensitiveDict({"Content-Type": "application/json"})
    try:
        r = requests.post(
            discord_webhook, data=json.dumps(dict(embeds=[self.embed], username=discord_name, avatar_url=avatar_icon, tts=discord_tts)), headers=headers
        )
        r.raise_for_status()
    except requests.exceptions.ConnectionError as error:
        logger.info("Could not reach the webhook url")
        return False
    except requests.exceptions.RequestException as error:
        if error.response.status_code != 429 or int(error.response.headers.get("X-RateLimit-Remaining")) != 0:
            logger.exception(f"RequestException traceback: {traceback.format_exc()}")
            raise error
        logger.info("Discord rate limiting, retrying after {} seconds".format(error.response.headers.get("X-RateLimit-Reset-After")))
        time.sleep(int(error.response.headers.get("X-RateLimit-Reset-After")) + 1)
        r = requests.post(
            discord_webhook, data=json.dumps(dict(embeds=[self.embed], username=discord_name, avatar_url=avatar_icon, tts=discord_tts)), headers=headers
        )
        r.raise_for_status()
    except Exception as error:
        logger.exception(f"Error Sending Discord message: {error}")
        logger.exception(f"Traceback: {traceback.format_exc()}")
        return False
    return True