# Buggy code
async def _currency_check(self, ctx: commands.Context, jukebox_price: int):
    jukebox = await self.config.guild(ctx.guild).jukebox()
    if jukebox and not await self._can_instaskip(ctx, ctx.author):
        try:
            await bank.withdraw_credits(ctx.author, jukebox_price)
            return True
        except ValueError:
            credits_name = await bank.get_currency_name(ctx.guild)
            await self._embed_msg(
                ctx,
                _("Not enough {currency} ({required_credits} required).").format(
                    currency=credits_name,
                    required_credits=humanize_number(jukebox_price),
                ),
            )
            return False
    else:
        return True


# Traceback (RuntimeError)
Traceback (most recent call last):
File "/home/martinebots/martinebotsvenv/lib/python3.7/site-packages/discord/ext/commands/core.py", line 79, in wrapped
ret = await coro(*args, **kwargs)
File "/home/martinebots/martinebotscogs/cogs_modified/audio/audio.py", line 3183, in play
await self._enqueue_tracks(ctx, query)
File "/home/martinebots/martinebotscogs/cogs_modified/audio/audio.py", line 3885, in _enqueue_tracks
result, called_api = await self.music_cache.lavalink_query(ctx, player, query)
File "/home/martinebots/martinebotscogs/cogs_modified/audio/apis.py", line 911, in lavalink_query
results = await player.load_tracks(query)
File "/home/martinebots/martinebotsvenv/lib/python3.7/site-packages/lavalink/rest_api.py", line 300, in load_tracks
self.__check_node_ready()
File "/home/martinebots/martinebotsvenv/lib/python3.7/site-packages/lavalink/rest_api.py", line 268, in __check_node_ready
raise RuntimeError("Cannot execute REST request when node not ready.")
RuntimeError: Cannot execute REST request when node not ready.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/martinebots/martinebotsvenv/lib/python3.7/site-packages/discord/ext/commands/bot.py", line 863, in invoke
await ctx.command.invoke(ctx)
File "/home/martinebots/martinebotsvenv/lib/python3.7/site-packages/discord/ext/commands/core.py", line 728, in invoke
await injected(*ctx.args, **ctx.kwargs)
File "/home/martinebots/martinebotsvenv/lib/python3.7/site-packages/discord/ext/commands/core.py", line 88, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: RuntimeError: Cannot execute REST request when node not ready.```

# Fixed code
async def _currency_check(self, ctx: commands.Context, jukebox_price: int):
    jukebox = await self.config.guild(ctx.guild).jukebox()
    if jukebox and not await self._can_instaskip(ctx, ctx.author):
        can_spend = await bank.can_spend(ctx.author, jukebox_price)
        if can_spend:
            await bank.withdraw_credits(ctx.author, jukebox_price)
        else:
            credits_name = await bank.get_currency_name(ctx.guild)
            bal = await bank.get_balance(ctx.author)
            await self._embed_msg(
                ctx,
                title=_("Not enough {currency}").format(currency=credits_name),
                description=_(
                    "{required_credits} {currency} required, but you have {bal}."
                ).format(
                    currency=credits_name,
                    required_credits=humanize_number(jukebox_price),
                    bal=humanize_number(bal),
                ),
            )
        return can_spend
    else:
        return True