from typing import TYPE_CHECKING from aioredis.client import Redis from discord import Embed from discord.ext import commands from discord.ext.commands.errors import CommandInvokeError from lavalink.models import DefaultPlayer if TYPE_CHECKING: from bot import TuneBot class CustomContext(commands.Context): @property def redis(self) -> Redis: return self.bot._redis_client @property def player(self) -> DefaultPlayer: if hasattr(self.bot, "lavalink"): return self.bot.lavalink.player_manager.get(self.guild.id) raise CommandInvokeError("Lavalink is still starting up.") def create_embed(self) -> Embed: bot: TuneBot = self.bot color = bot.colors["embed"] avatar = None if avatar_asset := self.author.avatar: avatar = avatar_asset.with_static_format("jpeg") embed = Embed(color=color) embed.set_footer(text=f"Requested by: {self.author}", icon_url=avatar) return embed