# Buggy code
async def _eq_interact(
    self, ctx: commands.Context, player: lavalink.Player, eq, message, selected
):
    player.store("eq", eq)
    emoji = {
        "far_left": "◀",
        "one_left": "⬅",
        "max_output": "⏫",
        "output_up": "🔼",
        "output_down": "🔽",
        "min_output": "⏬",
        "one_right": "➡",
        "far_right": "▶",
        "reset": "⏺",
        "info": "ℹ",
    }
    selector = f"{' ' * 8}{'   ' * selected}^^"
    try:
        await message.edit(content=box(f"{eq.visualise()}\n{selector}", lang="ini"))
    except discord.errors.NotFound:
        return
    try:
        react_emoji, react_user = await self._get_eq_reaction(ctx, message, emoji)
    except TypeError:
        return

    if not react_emoji:
        await self.config.custom("EQUALIZER", ctx.guild.id).eq_bands.set(eq.bands)
        await self._clear_react(message, emoji)

    if react_emoji == "⬅":
        await remove_react(message, react_emoji, react_user)
        await self._eq_interact(ctx, player, eq, message, max(selected - 1, 0))

    if react_emoji == "➡":
        await remove_react(message, react_emoji, react_user)
        await self._eq_interact(ctx, player, eq, message, min(selected + 1, 14))

    if react_emoji == "🔼":
        await remove_react(message, react_emoji, react_user)
        _max = "{:.2f}".format(min(eq.get_gain(selected) + 0.1, 1.0))
        eq.set_gain(selected, float(_max))
        await self._apply_gain(ctx.guild.id, selected, _max)
        await self._eq_interact(ctx, player, eq, message, selected)

    if react_emoji == "🔽":
        await remove_react(message, react_emoji, react_user)
        _min = "{:.2f}".format(max(eq.get_gain(selected) - 0.1, -0.25))
        eq.set_gain(selected, float(_min))
        await self._apply_gain(ctx.guild.id, selected, _min)
        await self._eq_interact(ctx, player, eq, message, selected)

    if react_emoji == "⏫":
        await remove_react(message, react_emoji, react_user)
        _max = 1.0
        eq.set_gain(selected, _max)
        await self._apply_gain(ctx.guild.id, selected, _max)
        await self._eq_interact(ctx, player, eq, message, selected)

    if react_emoji == "⏬":
        await remove_react(message, react_emoji, react_user)
        _min = -0.25
        eq.set_gain(selected, _min)
        await self._apply_gain(ctx.guild.id, selected, _min)
        await self._eq_interact(ctx, player, eq, message, selected)

    if react_emoji == "◀":
        await remove_react(message, react_emoji, react_user)
        selected = 0
        await self._eq_interact(ctx, player, eq, message, selected)

    if react_emoji == "▶":
        await remove_react(message, react_emoji, react_user)
        selected = 14
        await self._eq_interact(ctx, player, eq, message, selected)

    if react_emoji == "⏺":
        await remove_react(message, react_emoji, react_user)
        for band in range(eq._band_count):
            eq.set_gain(band, 0.0)
        await self._apply_gains(ctx.guild.id, eq.bands)
        await self._eq_interact(ctx, player, eq, message, selected)

    if react_emoji == "ℹ":
        await remove_react(message, react_emoji, react_user)
        await ctx.send_help(self.eq)
        await self._eq_interact(ctx, player, eq, message, selected)


# 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 _eq_interact(
    self, ctx: commands.Context, player: lavalink.Player, eq, message, selected
):
    player.store("eq", eq)
    emoji = {
        "far_left": "\N{BLACK LEFT-POINTING TRIANGLE}",
        "one_left": "\N{LEFTWARDS BLACK ARROW}",
        "max_output": "\N{BLACK UP-POINTING DOUBLE TRIANGLE}",
        "output_up": "\N{UP-POINTING SMALL RED TRIANGLE}",
        "output_down": "\N{DOWN-POINTING SMALL RED TRIANGLE}",
        "min_output": "\N{BLACK DOWN-POINTING DOUBLE TRIANGLE}",
        "one_right": "\N{BLACK RIGHTWARDS ARROW}",
        "far_right": "\N{BLACK RIGHT-POINTING TRIANGLE}",
        "reset": "\N{BLACK CIRCLE FOR RECORD}",
        "info": "\N{INFORMATION SOURCE}",
    }
    selector = f"{' ' * 8}{'   ' * selected}^^"
    try:
        await message.edit(content=box(f"{eq.visualise()}\n{selector}", lang="ini"))
    except discord.errors.NotFound:
        return
    try:
        (react_emoji, react_user) = await self._get_eq_reaction(ctx, message, emoji)
    except TypeError:
        return

    if not react_emoji:
        await self.config.custom("EQUALIZER", ctx.guild.id).eq_bands.set(eq.bands)
        await self._clear_react(message, emoji)

    if react_emoji == "\N{LEFTWARDS BLACK ARROW}":
        await remove_react(message, react_emoji, react_user)
        await self._eq_interact(ctx, player, eq, message, max(selected - 1, 0))

    if react_emoji == "\N{BLACK RIGHTWARDS ARROW}":
        await remove_react(message, react_emoji, react_user)
        await self._eq_interact(ctx, player, eq, message, min(selected + 1, 14))

    if react_emoji == "\N{UP-POINTING SMALL RED TRIANGLE}":
        await remove_react(message, react_emoji, react_user)
        _max = "{:.2f}".format(min(eq.get_gain(selected) + 0.1, 1.0))
        eq.set_gain(selected, float(_max))
        await self._apply_gain(ctx.guild.id, selected, _max)
        await self._eq_interact(ctx, player, eq, message, selected)

    if react_emoji == "\N{DOWN-POINTING SMALL RED TRIANGLE}":
        await remove_react(message, react_emoji, react_user)
        _min = "{:.2f}".format(max(eq.get_gain(selected) - 0.1, -0.25))
        eq.set_gain(selected, float(_min))
        await self._apply_gain(ctx.guild.id, selected, _min)
        await self._eq_interact(ctx, player, eq, message, selected)

    if react_emoji == "\N{BLACK UP-POINTING DOUBLE TRIANGLE}":
        await remove_react(message, react_emoji, react_user)
        _max = 1.0
        eq.set_gain(selected, _max)
        await self._apply_gain(ctx.guild.id, selected, _max)
        await self._eq_interact(ctx, player, eq, message, selected)

    if react_emoji == "\N{BLACK DOWN-POINTING DOUBLE TRIANGLE}":
        await remove_react(message, react_emoji, react_user)
        _min = -0.25
        eq.set_gain(selected, _min)
        await self._apply_gain(ctx.guild.id, selected, _min)
        await self._eq_interact(ctx, player, eq, message, selected)

    if react_emoji == "\N{BLACK LEFT-POINTING TRIANGLE}":
        await remove_react(message, react_emoji, react_user)
        selected = 0
        await self._eq_interact(ctx, player, eq, message, selected)

    if react_emoji == "\N{BLACK RIGHT-POINTING TRIANGLE}":
        await remove_react(message, react_emoji, react_user)
        selected = 14
        await self._eq_interact(ctx, player, eq, message, selected)

    if react_emoji == "\N{BLACK CIRCLE FOR RECORD}":
        await remove_react(message, react_emoji, react_user)
        for band in range(eq._band_count):
            eq.set_gain(band, 0.0)
        await self._apply_gains(ctx.guild.id, eq.bands)
        await self._eq_interact(ctx, player, eq, message, selected)

    if react_emoji == "\N{INFORMATION SOURCE}":
        await remove_react(message, react_emoji, react_user)
        await ctx.send_help(self.eq)
        await self._eq_interact(ctx, player, eq, message, selected)