async def METHOD_NAME(self, ctx: GuildContext, mode: str, target: Optional[str] = None):
    t = datetime.today()
    curr_time = f"{t.month}.{t.day}"
    for season_ in self.seasons:
        if (mode == "remove" and season_.emote_str == target) or (target is None and curr_time in season_):
            season = season_
            break
    else:
        if target is None or mode == "add":
            return await ctx.send(
                "There is no special season happening right now "
                "or it hasn't been implemented yet."
            )
        return await ctx.send(
            "There is no season with the name you specified."
        )
    new_nick = ""
    if mode == "add":
        if target is not None:
            return await ctx.send(
                "💢 You can't choose which season to add! "
                "(Try again with just .seasonal)"
            )
        new_nick = f"{ctx.author.display_name} {season.emote}"
        if ctx.author.display_name[-1] == season.emote:
            return await ctx.send(
                f"Your shown name already ends in a {season.emote}!"
            )
        if len(new_nick) > 32:
            return await ctx.send(
                "💢 Your name is too long! "
                f"(max is 32 characters, yours would be {len(new_nick)})")
    elif mode == "remove":
        if ctx.author.nick:
            matches = list(finditer(season.emote_regex, ctx.author.nick))
            if not matches:
                return await ctx.send(
                    "Your nickname doesn't contain the current/requested"
                    f" seasonal emote [{season.emote} | '{season.emote_str}']"
                )
            res = matches[-1]
            new_nick = (
                f"{ctx.author.display_name[:res.start()]}"
                f"{ctx.author.display_name[res.end():]}"
            )
            if len(new_nick) == 0:
                return await ctx.send("💢 I can't completely remove your nick!")
        elif bool(search(season.emote_regex, ctx.author.name)):
            return await ctx.send(f"Your username is the one with a {season.emote_str}")
        else:
            return await ctx.send(f"You don't have a {season.emote_str}")
    try:
        await ctx.author.edit(nick=new_nick)
        await ctx.send(f"Your nickname is now `{ctx.author.display_name}`")
    except discord.errors.Forbidden:
        await ctx.send("💢  I can't change your nickname! (Permission Error)")