A powerful and robust Python library built from the ground up for interacting with Lavalink.
Installation
Lavapy requires Python 3.8 or higher
To install Lavapy, use one of the commands below:
# Windows
py -3.8 -m pip install -U nextlava
# Linux/macOS
python3.8 -m pip install -U nextlava
Then you need to setup the Lavalink server. For more details visit the faq.
Now all of that is done, you can start using Lavapy (nextcord version). Don't need to uninstall discord.py.
Usage
A simple and easy example to connect to a voice channel and play a Youtube song based on a given search query.
from nextcord.ext import commands
import lavapy
bot = commands.Bot(command_prefix="!")
async def initialiseNodes():
"""
Wait until the bot is ready then create a Lavapy node
"""
await bot.wait_until_ready()
await lavapy.NodePool.createNode(client=bot,
host="0.0.0.0",
port=2333,
password="LAVALINK_PASSWORD")
@bot.command()
async def play(ctx: commands.Context, *query) -> None:
"""
Play a Youtube song from a given search query.
If the bot is not connected, connect it to the user's voice channel. For this
to work, the user must be connected to a voice channel
"""
if not ctx.voice_client:
# Bot is not connected to a voice channel
try:
player: lavapy.Player = await ctx.author.voice.channel.connect(cls=lavapy.Player)
except AttributeError:
# User is not connected to a voice channel
await ctx.channel.send("You must be connected to a voice channel")
return
else:
# Bot is connected to a voice channel
player: lavapy.Player = ctx.voice_client
# Get tracks based on the given search query
track = await lavapy.YoutubeTrack.search(" ".join(query), player.node)
await player.play(track)
bot.loop.create_task(initialiseNodes())
bot.run("BOT_TOKEN")