Skip to content
This repository was archived by the owner on May 1, 2023. It is now read-only.

Repository files navigation

https://raw.githubusercontent.com/Aspect1103/Lavapy/master/logo.png

https://img.shields.io/pypi/pyversions/Lavapyhttps://img.shields.io/pypi/v/Lavapyhttps://readthedocs.org/projects/lavapy/badge/?version=latesthttps://img.shields.io/github/license/Aspect1103/Lavapyhttps://img.shields.io/lgtm/grade/python/g/Aspect1103/Lavapy.svg?logo=lgtm&logoWidth=18

A powerful and robust Python library built from the ground up for interacting with Lavalink.

IMPORTANT PSA: Future of this Library

The aim of this library was to provide a wrapper for lavalink when using discord.py. Before I started development, I was using a library called Wavelink, however, once it became archived I decided to start development on this library to not only improve my own skills but to help others with the same problem.

However, now my interest has started to falter. I have lost the drive to continue maintaining this library for a number of reasons: the code isn't PEP 8 compliant unlike my newer projects and the code is hard to maintain in its current form. But the most important reason is that there is now a large number of alternative libraries which do this specific purpose much better than this library including but not limited to: Wavelink, Pomice, and Pycord.Wavelink.

Henceforth, I have made the decision to stop maintaining this library and leave it dormant. I won't archive it as I may recover the drive I had when starting this project later on, but for now, the library is now inactive.

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 lavapy
# Linux/macOS
python3.8 -m pip install -U lavapy

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.

Usage

A simple and easy example to connect to a voice channel and play a Youtube song based on a given search query.

fromdiscord.extimportcommandsimportlavapybot=commands.Bot(command_prefix="!")
asyncdefinitialiseNodes():
""" Wait until the bot is ready then create a Lavapy node """awaitbot.wait_until_ready()
awaitlavapy.NodePool.createNode(client=bot,
host="0.0.0.0",
port=2333,
password="LAVALINK_PASSWORD")
@bot.command()asyncdefplay(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 """ifnotctx.voice_client:
# Bot is not connected to a voice channeltry:
player: lavapy.Player=awaitctx.author.voice.channel.connect(cls=lavapy.Player)
exceptAttributeError:
# User is not connected to a voice channelawaitctx.channel.send("You must be connected to a voice channel")
returnelse:
# Bot is connected to a voice channelplayer: lavapy.Player=ctx.voice_client# Get tracks based on the given search querytrack=awaitlavapy.YoutubeTrack.search(" ".join(query), player.node)
awaitplayer.play(track)
bot.loop.create_task(initialiseNodes())
bot.run("BOT_TOKEN")

Links

About

A powerful and robust python library for interacting with Lavalink.

Resources

Stars

5 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages